0
A
回答
1
这是一个脚本,用于根据地址在表格中使用复选框切换标记。我使用jQuery进行表单交互。这个脚本只有当用户点击首次标记发送一个地址解析请求..
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript">
</script>
<script type="text/javascript" src= "http://maps.google.com/maps/api/js?sensor=false">
</script>
<script>
var geocoder;
var map;
markers = [];
function initialize(){
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function codeAddress(address){
//check if this marker is already in array
geocoder.geocode({
'address': address
}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
//keep track of your markers, i am using address here as an ID but anything else can be used such as element id
markers.push({
id: address,
marker: marker
})
}
else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
function isGeocoded(address){
//check if marker is in marker array
index = inArray(address)
if (index >= 0) {
m = markers[index].marker
//is marker visible ?
if (m.getMap() === null) {
m.setMap(map)
//pan map to the toggled marker
map.panTo(m.position)
}
else {
//toggle marker
m.setMap(null);
}
}
else {
codeAddress(address);
}
}
function inArray(address){
for (i = 0; i < markers.length; i++) {
if (markers[i].id == address) {
return i
}
}
}
$(document).ready(function(){
$("table .ch").change(function(){
isGeocoded($(this).val());
})
})
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width: 320px; height: 480px;">
</div>
<div>
<table>
<tr>
<td>
<input type="checkbox" class="ch" value="Sydney, NSW">
</td>
<td>
Sydney, NSW
</td>
</tr>
<tr>
<td>
<input type="checkbox" class="ch" value="40 Devon St, Christchurch, New Zealand">
</td>
<td>
40 Devon St, Christchurch, New Zealand
</td>
</tr>
</table>
</div>
</body>
</html>
相关问题
- 1. 地图标记不显示(JavaScript的/谷歌地图API V3)
- 2. 谷歌地图标记不会显示
- 3. AngularJS +谷歌地图不显示标记
- 4. android谷歌地图标记不显示
- 5. 谷歌地图标记不显示
- 6. 谷歌地图js标记不显示
- 7. 谷歌地图不显示标记
- 8. 谷歌地图APIv2标记不显示
- 9. 在javascript中的谷歌地图上显示标记
- 10. 在谷歌地图上的其他标记上显示标记
- 11. 显示谷歌地图与标记检索从mysql
- 12. Javascript谷歌地图API - 标记不显示
- 13. JavaScript的谷歌地图标记错误
- 14. 谷歌地图JavaScript V3 Api的标记
- 15. 如何显示标记列表中的谷歌地图
- 16. 可拖动的谷歌地图标记
- 17. 谷歌地图 - 从结果列表中显示标记窗口
- 18. 谷歌地图标记与JavaScript和PHP
- 19. 谷歌地图不显示HTML(JavaScript)的
- 20. 谷歌地图标记显示在错误的地方
- 21. 谷歌的地方API标记不会显示在地图上
- 22. 谷歌地图标记显示标题中的位置名称
- 23. 谷歌地图v3可拖动标记
- 24. 谷歌地图V3可见标记fitBounds
- 25. 谷歌地图标记infowindow
- 26. android谷歌地图标记
- 27. 谷歌地图标记DROP
- 28. 谷歌地图标记
- 29. 标记谷歌地图
- 30. 谷歌地图 - 多标记
当我嵌入这在我的网站,我总是得到一个错误,指出“$(”表·CH“)”是空的。是因为你必须把所有的div都放到$“(”#cRight> etc“中吗? – Mermoz 2010-10-19 14:26:12
你可以发布一个链接到你的实现吗? – Michal 2010-10-19 15:44:45
其实$()只会提升错误”为空“使用Prototype 1.5库... – Mermoz 2010-10-20 10:53:15