在Google地图上放置标记并获取Lon / Lat值

时间:2010-12-30 21:00:44

标签: jquery google-maps

我正在尝试编写一个简单的网络应用程序,人们将有机会在谷歌地图上放置一个标记(他们想要的任何地方)并写一条简短的短信(不是在地图上,而是在表格上的简单文本区域) )。然后,我将lan / lon值和文本消息保存到数据库中,但我不知道如何放置标记并获取其lan / lon值。我想使用jQuery放置一个标记,然后获取它的坐标。

我看到了一些这方面的例子,但我无法编写JavaScript部分。是否有一个jQuery插件可以执行此操作,还是可以使用jQuery编写它?

感谢。

编辑:我在写这个问题之前使用过搜索但是在StackOverflow上找不到答案。在发送问题后,我正在Google上进行搜索,我想出了这个How do you click on a map and have latitude and longitude fields in a form populated?。我认为这是我正在寻找的确切答案。

2 个答案:

答案 0 :(得分:2)

嗯,我不知道是否有任何jquery插件可以帮助你,但google maps API有很好的记录: http://code.google.com/intl/en/apis/maps/documentation/javascript/basics.html

如果您想在用户点击地图时向地图添加标记,请使用监听器:

google.maps.event.addListener(map, 'click', function(event) {
                marker = new google.maps.Marker({
                         position: event.latLng,
                         map: map,
                         draggable: true,
                         title: title
                         });
                marker.setMap(map);
            });

这里的coords可以通过事件的属性(用户点击地图)获得,这来自事件本身

 click(overlay:GOverlay, latlng:GLatLng, overlaylatlng:GLatLng) 

并且此latlng是GLatLng http://code.google.com/intl/en/apis/maps/documentation/javascript/v2/reference.html#GLatLng

类型的对象

并且GLatLng类具有获取lat和long实际值的方法。

var LAT = event.latLng.lat();
var LNG = event.latLng.lng();

所有这些在开始时看起来有点压倒性,但它只是知道每种情况下可用的对象,事件,方法和属性的类型。

如果您对JavaScript有一些基本的了解,那么您应该做得很好,并且真的没有必要使用插件,就像@rcravens所说的那样,它不需要太多包装。

答案 1 :(得分:1)

我把google maps v3 api(不是需要很多包装)包装成一个jquery插件。以下是如何下载/使用的帖子:

http://blog.bobcravens.com/2010/06/a-google-maps-version-3-jquery-plugin/

这是一个演示页面:

http://bobcravens.com/demos/GoogleMaps3/

希望这会有所帮助。如果您有疑问,请告诉我。

鲍勃