मैं थोड़ी उलझन में हूं, मुझे अपने जीओडीजेंगो प्वाइंटफ़ील्ड में अपने एसआरआईडी मूल्य को Google मानचित्र एपीआई के जरिए जियोकोड किए गए पते के संदर्भ में सटीक बने रहने के लिए क्या करना चाहिए और django-postgis के माध्यम से पूछे जाने वाले दूरी में दूरी तय की जानी चाहिए?GeoDjango, Google मानचित्र V3 API के साथ पॉइंटफ़िल्ल्ड इंटरफेसिंग के लिए क्या SRID उपयोग करना है?
मुझे नेट और स्टैकओवर प्रवाह के चारों ओर धागे पढ़ने के मिश्रित राय मिल रही हैं और मुझे यह सुनिश्चित नहीं है कि क्या करना है। जैसा कि आप देख सकते हैं कि मेरा एप्लिकेशन Google मानचित्र एपीआई के साथ geocode पते पर geopy का उपयोग कर रहा है। अभी मेरे निर्देशांक फ़ील्ड में एक SRID सेट नहीं है जो 4326 पर डिफ़ॉल्ट है (ईपीएसजी: 4326)। अब स्पष्ट रूप से यह पृथ्वी को एक विश्व के रूप में देखता है, न कि एक सपाट सतह।
जैसे कि Google मानचित्र निम्नलिखित प्रश्न बातों में जवाब के अनुसार (EPSG 3857) जो जाहिरा तौर पर 900913. https://gis.stackexchange.com/questions/48949/epsg-3857-or-4326-for-googlemaps-openstreetmap-and-leaflet
के SRID तो इसका मतलब मैं 900913 का समर्थन करता करने के लिए अपने SRID स्थापित करना चाहिए करता है का उपयोग करें? मेरे सभी रेस्तरां मॉडल के निर्देशांक जियोकोडर का उपयोग करके नीचे देखी गई विधि में सहेजे गए हैं। मुझे ऐसा लगता है।
अब यह है जहां मुझे फेंक दिया गया है, निम्नलिखित ट्यूटोरियल http://invisibleroads.com/tutorials/geodjango-googlemaps-build.html उनके एसआरआईडी सेट के साथ 4326 (डिफ़ॉल्ट) के साथ एक पॉइंटफील्ड का उपयोग करता है और उनके मार्कर पॉइंट पूरी तरह से Google मानचित्र पर दिखाई देते हैं।
वर्तमान में मेरे प्रश्न ठीक से सटीक हैं लेकिन अभी भी लगता है कि थोड़ा सा लगता है।
सहायता की सराहना की है, धन्यवाद!
from geopy.geocoders import GoogleV3
from django.contrib.gis.geos import *
from django.contrib.gis.measure import D
geo = GoogleV3()
def home_page(request):
distance = 3680
address, coordinates = geo.geocode('Swanston Street, Melbourne Australia')
ref_location = Point(coordinates)
query = Restaurant.objects.filter(restaurant_location__distance_lte=(ref_location, D(m=distance))).distance(ref_location).order_by('distance')
return render(request, 'swings/home.html', {'restaurants': query})
भोजनालय मॉडल
class Restaurant(models.Model):
name = models.CharField(max_length=25, blank=False)
user = models.ForeignKey(User)
address = models.CharField(max_length=50, blank=False)
restaurant_location = models.PointField(null=False, blank=False)
objects = models.GeoManager()
def __str__(self):
return self.name
कि काफी मददगार था। इतिहास सबक ने वास्तव में चीजों को स्पष्ट करने में मदद की। धन्यवाद! – user3739703
क्या इसका यह भी अर्थ है कि मुझे खोज एपीआई से वापस आने वाले बिंदुओं के लिए 4326 का उपयोग करना चाहिए? – bigblind
@bigblind, क्षमा करें, कौन सी खोज एपीआई? –