का उपयोग कर भू-स्पेसियल त्रिज्या खोज GeoModel का उपयोग कर एक एप्लिकेशन विकसित कर रहा हूं। मुझे दिए गए अक्षांश और देशांतर के आधार पर किसी विशेष त्रिज्या में खोज करने की आवश्यकता है। मैं ऑब्जेक्टिफ़ाई का उपयोग करके डेटास्टोर में जियोसेल उत्पन्न करने में सक्षम हूं, लेकिन परिणामों को किसी विशेष त्रिज्या में वापस पाने में सक्षम नहीं हूं।ऑब्जेक्टिफाइंग
मैं नीचे अपना कोड साझा कर रहा हूं।
इकाई कक्षा
@Entity
public class NewsFeed implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Index
private Long feedID;
@Index
private String topic;
@Index
private String title;
private String description;
@Index
private Date createDate;
private String imageOrVideo;
private String imageUrl;
private String blobKey;
@Latitude
private Double latitude;
@Longitude
private Double longitude;
@Geocells
private List<String> cells;
// getter and setters ...
}
कस्टम GeocellQueryEngine कक्षाFrom This Source
public class ObjectifyGeocellQueryEngine implements GeocellQueryEngine {
private String geocellsProperty;
private Objectify ofy;
public static final String DEFAULT_GEOCELLS_PROPERTY = "cells";
public ObjectifyGeocellQueryEngine(Objectify ofy) {
this(ofy, DEFAULT_GEOCELLS_PROPERTY);
}
public ObjectifyGeocellQueryEngine(Objectify ofy, String geocellsProperty) {
this.ofy = ofy;
this.geocellsProperty = geocellsProperty;
}
@Override
public <T> List<T> query(GeocellQuery baseQuery, List<String> geocells, Class<T> entityClass) {
StringTokenizer st;
int tokenNo = 0;
Query<T> query = ofy.query(entityClass);
if (baseQuery != null) {
st = new StringTokenizer(baseQuery.getBaseQuery(), ",");
while (st.hasMoreTokens()) {
query.filter(st.nextToken(), baseQuery.getParameters().get(tokenNo++));
}
}
return query.filter(geocellsProperty + " IN", geocells).list();
}
}
डेटा प्राप्त करने यहाँ
Point p = new Point(24.8993714, 79.5839124);
// Generates the list of GeoCells
List<String> cells = GeocellManager.generateGeoCell(p);
List<Object> params = new ArrayList<Object>();
params.add("Movies");
GeocellQuery baseQuery = new GeocellQuery("topic == topic", "String topic",params);
ObjectifyGeocellQueryEngine objectifyGeocellQueryEngine = new ObjectifyGeocellQueryEngine(ofy(), "cells");
List<NewsFeed> list = objectifyGeocellQueryEngine.query(baseQuery, cells, NewsFeed.class);
List<NewsFeed> list2 = GeocellManager.proximitySearch(p, 10, 10000,NewsFeed.class, baseQuery, objectifyGeocellQueryEngine, GeocellManager.MAX_GEOCELL_RESOLUTION);
System.out.println(list+" : "+list2);
अब समस्या यह है कि मुझे यहां से कोई परिणाम नहीं मिल रहा है। क्या आप लोग इस बारे में मेरी मदद कर सकते हैं क्योंकि मुझे खाली सूची नहीं मिल रही है, मुझे कोई अपवाद नहीं मिल रहा है।
मुझे नवीनतम अपडेट के बाद लगभग दो साल का विश्वास नहीं होगा। जावा के साथ कभी नहीं खेला .. तो मेरी बात मत सुनो :) – Lipis
यह एक अच्छा सवाल है लेकिन आपको संभवतः पाइथन में अधिक सहायता मिलेगी (मैं खुद के लिए बोलता हूं) –