谷歌地图 - 将v2转换为v3 -drag图标并检索纬度/经度

时间:2013-01-10 20:55:14

标签: google-maps

我有一个我多年前在Google Map v2中写过的应用程序,它显示了来自给定初始纬度/经度的地图,并在地图上放置了一个图标。这个网页是一个带有lat和long文本框的表单。该页面允许用户将图标拖动到野火所在的实际位置。新的lat / long被放入文本框中,用户可以提交表单。我没有在v3中找到适合此过程的替代品。现在我收到一条错误消息,指出Google地图需要新的API密钥。但我也知道,在5月,v2可能不再起作用。所以我想将此应用更新到v3。我能找到这个的任何想法?以下是旧页面的示例http://nfsdata.unl.edu/wildfire/testmap.asp该页面在ASP中编写。我们无法在此服务器上访问PHP。感谢

1 个答案:

答案 0 :(得分:1)

这是一个非常简单的应用程序。

您的v2代码:

<script type="text/javascript">
//<![CDATA[
function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map"));
    var center = new GLatLng(41.33,-96.95);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());      
    map.setCenter(center, 13);
    var marker = new GMarker(center, {draggable: false});
    map.addOverlay(marker);
    GEvent.addListener(map, "click", function(overlay, point) { 
                    if (overlay) { 
                            map.removeOverlay(overlay); 
                    } else { 
                            map.clearOverlays() 
                            map.addOverlay(new GMarker(point)); 
                            document.getElementById("loclats").value = point.lat(); 
                            document.getElementById("loclongs").value = point.lng(); 

                    } 
    }); 


  }
}

//]]>
</script>

简单翻译到v3(未经测试):

<script type="text/javascript">
//<![CDATA[
function load() {
    var center = new google.maps.LatLng(41.33,-96.95);
    map = new google.maps.Map(document.getElementById("map"),{
         center:center,
         zoom: 13
    });
   var marker = new google.maps.Marker({
         map: map,
         position:center
    });
google.maps.event.addListener(marker, "click", function() {
         marker.setMap(null);
    }); 
google.maps.event.addListener(map, "click", function(evt) { 
         var point = evt.latLng;
         marker.setPosition(point);
         document.getElementById("loclats").value = point.lat(); 
         document.getElementById("loclongs").value = point.lng(); 
    }); 


  }
}
//]]>
</script>

working example