Клуб API Карт

Из Google Maps в Yandex.Карты

imperior72
15 марта 2015, 14:05

Как переделать эту карту от Google в карту Яндекса? 

 

 

<html id="html">

 <head id="head">
 <title>olpcMAP Mobile</title>
 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
 <meta name="viewport" content="width=device-width, user-scalable=no"/>
 <script src="http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
 <script type="text/javascript">
 var map,kml;
 function load(){
 var latlng;
 if(!map){
 latlng = new google.maps.LatLng(36.020985,22.951267);
 var myOptions = {
 zoom: 2,
 center: latlng,
 mapTypeId: google.maps.MapTypeId.ROADMAP,
 mapTypeControl: true,
 navigationControlOptions: {position:google.maps.ControlPosition.TOP_RIGHT}
 };
 map = new google.maps.Map(document.getElementById("map"), myOptions);
 google.maps.event.addListener(map,'bounds_changed',function(){
 kml = new google.maps.KmlLayer("http://mapmeld.appspot.com/olpcMAPolpc/kml?llregion=" + map.getBounds().getNorthEast().lat() + "," + map.getBounds().getNorthEast().lng() + "," + map.getBounds().getSouthWest().lat() + "," + map.getBounds().getSouthWest().lng(),{map:map,preserveViewport:true});
 });
 }
 }
 function toLatLng(x,y){
 x+=".000000";
 y+=".000000";
 var factor=0.01;
 var zoom=map.getZoom();
 return new google.maps.LatLng(mapLat,mapLng);
 }
 </script>
 <style type="text/css">
 #map{width:100%;height:100%;z-index:1}
 </style>
 </head>
 <body id="body" onload="load();">
 <div id="map">
 </div>
 </body>
 </html>
11 комментариев
Подписаться на комментарии к посту

Что именно не получилось?

модификация яваскрипта из Google в Яндекс.

http://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript">
 http://code.jquery.com/jquery-latest.js">
 
 var map,kml;
 function load(){
 var latlng;
 if(!map){
 latlng = new google.maps.LatLng(36.020985,22.951267);
 var myOptions = {
 zoom: 2,
 center: latlng,
 mapTypeId: google.maps.MapTypeId.ROADMAP,
 mapTypeControl: true,
 navigationControlOptions: {position:google.maps.ControlPosition.TOP_RIGHT}
 };
 map = new google.maps.Map(document.getElementById("map"), myOptions);
 google.maps.event.addListener(map,'bounds_changed',function(){
 kml = new google.maps.KmlLayer("http://mapmeld.appspot.com/olpcMAPolpc/kml?llregion=" + map.getBounds().getNorthEast().lat() + "," + map.getBounds().getNorthEast().lng() + "," + map.getBounds().getSouthWest().lat() + "," + map.getBounds().getSouthWest().lng(),{map:map,preserveViewport:true});
 });
 }
 }
 function toLatLng(x,y){
 x+=".000000";
 y+=".000000";
 var factor=0.01;
 var zoom=map.getZoom();
 return new google.maps.LatLng(mapLat,mapLng);
 }
 

 

 

Что тут надо изменить?

Тут надо изменить все

посмотрите соотв. Классы карты, метки и загрузчик geoXml

на какой странице можно посмотреть, то что нужно изменить?

в geoXml от Яндекса нет "map.getBounds" 

как решить вопрос по загрузке карты по координатам?

ymaps.geoXml.load(...).then(function (res) {

myMap.geoObjects.add(res.geoObjects);

myMap.setBounds(res.geoObjects.getBounds(), { checkZoomRange: true});

});

последний вопрос, что писать вместо этого " + map.getBounds().getNorthEast().lng() + " ?

При стандартном подключении

map.getBounds()[1][1]

" + map.getBounds().getSouthWest().lng() + " в Яндексе будет: map.getBounds()[0][0] ?

Стандартное подключение АПИ использует порядок latlong

Так что lng() это индекс 1

[0][1]