这是一张简单的地图,根据城市的名称进行聚焦,您可以放置一个标记来指示您居住的地方。我的想法是在数据库中保存经度和纬度,但首先我需要得到它。
到目前为止,我有代码:
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);
});
});
我尝试了各种方法但没有取得好成绩。我想用gmaps api v3做。 这里JSFiddle。
答案 0 :(得分:1)
Uff ..当您放置标记时,您已经拥有它的位置。此position: location
包含标记的位置。
如果您以某种方式需要该位置,您可以通过那里访问它,或者您可以marker.getPosition()
。
我已更新了您的fiddle here。
注意:&#39; k&#39;是小写的,&#39; A&#39;是大写的 - 在getPosition()返回的对象中。
答案 1 :(得分:1)
Radu说的主要是什么。在他看来的同时我updating your fiddle。另外,你可能会发现在构造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);
如果您想更新infoWindow的内容,请使用infoWindow.setContent()
。
有关对象及其属性的详尽列表,请参阅Google Maps API reference。