Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменение существующего кода (https://javascript.ru/forum/dom-window/70182-izmenenie-sushhestvuyushhego-koda.html)

Aislamky 17.08.2017 16:45

Изменение существующего кода
 
Доброго времени суток!
Прошу знатоков помочь с переделкой кода.
Имеется вот такой код:
<script type="text/javascript" src=http://maps.google.ru/maps?file=api&amp;v=2&amp;key=XXX></script>
<script type="text/javascript" src="/jquery.js"></script>

<script type="text/javascript">

   var map;
    var geocoder;
    var address;
 
    function initialize() {
      map = new GMap2(document.getElementById("map_canvas"));
      map.setCenter(new GLatLng(40.730885,-73.997383), 15);
      map.setUIToDefault();
      GEvent.addListener(map, "click", getAddress);
      geocoder = new GClientGeocoder();
    }
    
    function getAddress(overlay, latlng) {
      if (latlng != null) {
        address = latlng;
        geocoder.getLocations(latlng, showAddress);
      }
    }
 
    function showAddress(response) {
      map.clearOverlays();
      if (!response || response.Status.code != 200) {
        alert("Status Code:" + response.Status.code);
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        marker = new GMarker(point);
        map.addOverlay(marker);
        
        var values = place.address.split(",");
        var address = values[0];
        var city = values[1];
        var state = values[2].split(" ")[1];
        var zip = values[2].split(" ")[2];
        var country = values[3]
        
        $("input[title='Country']").val(country);    
        $("input[title='Zip']").val(zip);    
        $("input[title='State']").val(state);    
        $("input[title='City']").val(city);    
        $("input[title='Address']").val(address);    
        
      }
    }
 

jQuery(document).ready(function($){
        initialize();
    });

</script>

Суть:
По клику на карте вытягивает адрес в указанную строку.
Только одна проблема в этой карте, детализация хромает, геокодер иногда некорректно отображает, ну и не дает вставлять маркер куда нужно.

Сейчас пробую API 2GIS,

там очень интересно, подробно, вплоть до этажей в зданиях,

код во многом очень похожий с моим:
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://maps.api.2gis.ru/1.0?loadByRequire=1"></script>
    <title>Тестовая карта с объектами</title>
</head>
<body>
    <div id="DGMap" style="width:100%; height:600px"></div>

    <script type="text/javascript">

        $(DG.load(function() {

            // Создаем карту
            var map = new DG.Map('DGMap');
            map.setCenter(new DG.GeoPoint(40.95,57.76),12);
            map.controls.add(new DG.Controls.Zoom());

            // Получаем данные
            $.get('getMapData.php', function (data) {
                var objects = JSON.parse(data);
                for ( i in objects ) {
                    var marker = new DG.Markers.MarkerWithBalloon({
                        geoPoint: new DG.GeoPoint(objects[i].coords[0], objects[i].coords[1]),
                        balloonOptions: {
                            headerContentHtml: '<b>Участок №'+objects[i].zone+'</b>',
                            contentHtml: 'Адрес:'+objects[i].address+'<br />Число квартир:'+objects[i].data
                        }
                    });
                    map.markers.add(marker);
                }
                // Получаем границы добавленных на карту маркеров:
                var markersBounds = map.markers.getBounds();
                // Устанавливаем карте новые границы по маркерам:
                map.setBounds(markersBounds);
            });

        }));

    </script>

</body>
</html>

Как реализовать идею переноса адреса из карты в строку «Address» как это реализовано в первом скрипте?

С уважением.


Часовой пояс GMT +3, время: 20:20.