Google Maps v3 - невозможно получить многоугольник и / или прямоугольник для отображения на карте - PullRequest
0 голосов
/ 03 июня 2011

Я работал над приложением геокодирования .NET, которое в конце отображает карту Google (с использованием API v3) адреса или места.На карте есть маркер в центре, представляющий точку, которая геокодирована.Это все работает.Затем я хотел отобразить на карте наложение прямоугольника / многоугольника, которое представляет границы, окружающие точку, которая была геокодирована (это отражает точность геокодирования, причем большие границы представляют меньшую точность).(Я получаю координаты этих границ из запроса API).

Однако я просто не могу получить многоугольник или прямоугольник для отображения на карте, и это сводит меня с ума!Я следовал инструкциям в документации для полигонов , но не радуюсь.Я пробовал google.maps.Polygon и google.maps.Rectangle, но безуспешно.Я также пробовал разные широты и долготы для границ, но это не имело никакого значения.Ничего не показывает.Я, должно быть, совершаю фундаментальную ошибку, но не вижу в этих лесах деревьев!

Базовый код (который генерируется из C #) у меня выглядит так:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    if (window.attachEvent) {window.attachEvent('onload', initMap);}
        else if (window.addEventListener) {window.addEventListener('load', initMap, false);}
        else {document.addEventListener('load', initMap, false);}

    function initMap() {
        var latlng = new google.maps.LatLng(51.5001524,-0.1262362);
        var myOptions = { zoom: 15, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
        var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
        var marker = new google.maps.Marker({
            position: latlng, map: map, title:'Westminster, London, UK' 
        });
        var boundCoords = [
            new google.maps.LatLng(51.3493528),
            new google.maps.LatLng(-0.378358),
            new google.maps.LatLng(51.7040647),
            new google.maps.LatLng(0.1502295),
        ];
        var poly = new google.maps.Polygon({
            paths: boundCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, 
            strokeWeight: 3, fillColor: '#FF0000', fillOpacity: 0.35 
        });
        poly.setMap(map); 
        console.log(poly);
    }
</script>

<div id="map_canvas" style="width:640px; height:480px"></div>

Существует версия JSFiddle , доступная здесь , с которой можно играть.

1 Ответ

2 голосов
/ 03 июня 2011
new google.maps.LatLng(51.3493528),

Вам нужны координаты x, y, например,

new google.maps.LatLng(32.321384, -64.75737),

ИЛИ

вам нужны два маркера, например:

var latLngBounds = new google.maps.LatLngBounds(
   marker1.getPosition(),
   marker2.getPosition()
);
rectangle.setBounds(latLngBounds);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...