كيف يمكنني التحويل من سلسلة الموقع (العنوان) إلى YGeoPoint في Yahoo Maps API؟
-
09-06-2019 - |
سؤال
لدي قائمة بالعناوين من قاعدة البيانات التي أرغب في وضع علامات عليها على خريطة Yahoo.ال addMarker()
طريقة على YMap يأخذ YGeoPoint، الأمر الذي يتطلب خط الطول والعرض.ومع ذلك، يجب أن تعرف خرائط Yahoo كيفية التحويل من العناوين لأنها drawZoomAndCenter(LocationType,ZoomLevel)
يمكن أن تأخذ عنوانا.يمكنني التحويل باستخدام drawZoomAndCenter()
ثم getCenterLatLon()
ولكن هل هناك طريقة أفضل لا تتطلب التعادل؟
المحلول
يمكنك أن تطلب من كائن الخريطة إجراء الترميز الجغرافي، وتلقي رد الاتصال:
<script type="text/javascript">
var map = new YMap(document.getElementById('map'));
map.drawZoomAndCenter("Algeria", 17);
map.geoCodeAddress("Cambridge, UK");
YEvent.Capture(map, EventsList.onEndGeoCode, function(geoCode) {
if (geoCode.success)
map.addOverlay(new YMarker(geoCode.GeoPoint));
});
</script>
شيء واحد يجب الحذر منه - في هذا المثال drawAndZoom
call بنفسها ستقدم طلبًا للترميز الجغرافي، لذا ستتلقى رد الاتصال من ذلك أيضًا.قد ترغب في تصفية ذلك، أو تعيين مركز الخريطة بناءً على GeoPoint.
نصائح أخرى
إذا كنت تعمل مع الولايات المتحدة.عناوين، يمكنك استخدامها Geocoder.us, ، والتي لديها واجهات برمجة التطبيقات.
أيضًا، خرائط جوجل المأجورون لديه اختراق، "هاك 62.العثور على خط الطول وخط العرض لعنوان الشارع", ، من أجل هذا.