2015-01-29 4 views
0

То, что я пытаюсь создать, - это форма, которая включает и выключает зону покрытия. Установите флажок рядом с именем филиала, на карте появится область. Таким образом, области переключаются и выключаются.Управление наложениями Google Map V3

Сформирован область как так:

// Construct the polygon. 
branchcoverage = new google.maps.Polygon({ 
    paths: coveragecoords[0]["coords"], //Pull in x,y polygon co-ords 
    strokeColor: '#FF0000', 
    strokeOpacity: 0.8, 
    strokeWeight: 1, 
    fillColor: '#FF0000', 
    fillOpacity: 0.35 
}); 

branchcoverage.setMap(mymap); 
branchcoverage.setMap(null); //Turn off overlay to test controls 

Это может быть там, где я скользя вверх, можно ссылаться/управления GoogleMap с помощью стандартной формы HTML? Тем самым я не имею в виду обычную html-форму, встроенную в/на карту (например, этот пример - http://predict.habhub.org/), отдельную html-форму не внутри холста карты DIV. Даже получение простого OnClick для взаимодействия с картой будет отличная отправной точкой:

<a href="#" onclick="google.maps.branchcoverage.setMap(mymap);">Show coverage</a> 

Возможно ли это или я ложное дерево?

Большое спасибо за ваше чтение времени.

ответ

0
<a href="#" id="my-element">Show coverage</a> 

Вы хотели бы использовать эту функцию для взаимодействия с dom. В google maps документах проходят через большинство из этого материала

google.maps.event.addDomListener(document.getElementById('my-element').click(function(){ 
    branchcoverage.setMap(mymap); 
})); 
+1

Вы, красота! Спасибо Craicerjack, это указало мне в правильном направлении. – Meeesta

0

Вот решение, которое использует ваш первоначальный встроенный OnClick обработчик события, с одной короткой функцией, которая может быть использована для переключения всех маркеров, ломаных линий, или полигонов на карте.

function togglePoly(polyname){ 
    if (polyname == null || undefined || '') return; 
    else { 
     if (polyname.getVisible()) polyname.setVisible(false); 
     else polyname.setVisible(true); 
    } 
} 

использование Инлайн ...

<a href="#" id="my-element" onclick="togglePoly('branchcoverage');">Show/Hide coverage</a> 

сценария использования ...

google.maps.event.addDomListener(document.getElementById('my-element').click(togglePoly('branchcoverage'))); 

Это работает, потому что Google отображает маркеры и полигоны являются расширениями объекта Google MVC, и, следовательно, может используйте все методы, доступные для объекта MVC.

+0

Просто было Крещение ;-) (Я знаю, что вы слышали это раньше). Большое спасибо за ваше время и понимание, открывает еще несколько вариантов. – Meeesta

Смежные вопросы