Javascript 我需要得到我的标记的纬度和经度
这是一张根据城市名称聚焦的简单地图,您可以放置一个标记来指示您居住的位置。想法是将经度和纬度保存在数据库中,但首先我需要得到它 到目前为止,我有以下代码:Javascript 我需要得到我的标记的纬度和经度,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,这是一张根据城市名称聚焦的简单地图,您可以放置一个标记来指示您居住的位置。想法是将经度和纬度保存在数据库中,但首先我需要得到它 到目前为止,我有以下代码: var myLatlng = new google.maps.LatLng(37.775, -122.4183333); var myOptions = { zoom: 3, center: myLatlng, mapTypeId: google.maps.MapTypeId.R
var myLatlng = new google.maps.LatLng(37.775, -122.4183333);
var myOptions =
{
zoom: 3,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var pais = 'Argentina';
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': pais}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
map.fitBounds(results[0].geometry.bounds);
} else {
alert("Geocode was not successful for the following reason: " + status);
};
var infoWindow = new google.maps.InfoWindow({
content: "<div style='font-size: 8pt; font-family: verdana ;' >Mi marca situada en<br></div>"
});
var marker;
function placeMarker(location) {
if ( marker ) {
marker.setPosition(location);
} else {
var clickedLocation = new google.maps.LatLng(location);
marker = new google.maps.Marker({
position: location,
map: map,
title: 'hola',
});
}
}
google.maps.event.addListener(map, 'click', function(event) {
infoWindow.open(map,marker);
placeMarker(event.latLng);
});
});
var mylatng=new google.maps.LatLng(37.775,-122.418333);
变异性肌肽=
{
缩放:3,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
var pais=‘阿根廷’;
var geocoder=new google.maps.geocoder();
geocoder.geocode({'address':pais},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
map.fitBounds(结果[0].geometry.bounds);
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
};
var infoWindow=new google.maps.infoWindow({
内容:“Mi marca situada en
”
});
var标记;
功能位置标记(位置){
如果(标记){
标记器。设置位置(位置);
}否则{
var clickedLocation=new google.maps.LatLng(位置);
marker=新的google.maps.marker({
位置:位置,,
地图:地图,
标题:'你好',
});
}
}
google.maps.event.addListener(映射,'click',函数(事件){
信息窗口。打开(地图、标记);
地点标记(事件标记);
});
});
我尝试过各种方法,但没有得到好的结果。我想用gmapsapiv3。
这里。Uff。。当你放置标记时,你已经知道了它的位置。此
position:location
包含标记的位置。
如果您需要该位置,您可以通过该位置访问它,也可以执行marker.getPosition()
我已经更新了你的密码
注意:“k”是小写,“A”是大写-在getPosition()返回的对象中。大部分是Radu说的。我和他似乎在同一时间。此外,您可能会发现,在构建infoWindow对象之前,等待获得该latLng会更方便,如下所示:
var infoWindow = new google.maps.InfoWindow({
content: "<div class='infoWindow'>Mi marca situada en<br>"
+ "Lat: " + event.latLng.lat() + "<br>"
+ "Lng: " + event.latLng.lng() + "</div>"
});
infoWindow.open(map, marker);
var infoWindow=new google.maps.infoWindow({
内容:“Mi marca situada en
”
+“Lat:+event.latLng.Lat()+”
”
+“Lng:+事件.latLng.Lng()+”
});
信息窗口。打开(地图、标记);
如果要更新信息窗口的内容,请使用infoWindow.setContent()
有关对象及其属性的详细列表,请参见。
latLng.k
,latLng.B
是latLng对象的未记录属性,它们可以并且将随新版本而更改。不要使用它们,使用有文档记录的.lat()和.lng()函数。好的!它是有效的:)只有一件事:每次单击都会创建一个新标记,但上一个标记会保留并堆叠。不可能不发生吗?@nicogaldo是的,有一种方法。与其在click事件回调中声明“var infoWindow”,不如在全局范围中声明它。然后在创建新窗口之前检查infoWindow是否已经存在。我想举例说明。看一看。getPosition().k
,getPosition().a
是latLng对象的未记录属性,它们可以并且将随着新版本而更改。不要使用它们,请使用有文档记录的.lat()和.lng()函数。