【发布时间】:2016-10-15 23:46:26
【问题描述】:
我正在尝试从用户那里获取一个地名,并在初始地图加载时将其标记在谷歌地图上。所以我要做的是使用来自另一个页面的会话获取地名和缩放值,并将其放置在地图属性中。缩放部分工作正常,但标记部分不起作用,我已经做了很多工作并尝试了不同的东西,但这是我最新版本的代码,它在地图上显示没有标记,并且没有错误好吧。
这是我的代码:
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
var myStyles =[
{
featureType: "poi",
elementType: "labels",
stylers: [
{ visibility: "off" }
]
}
];
function initialize() {
var zm = <%= Session["value2"]%>;
var ft= '<%= Request.QueryString["value"] %>';
navigator.geolocation.getCurrentPosition(function (position) {
var latlng2 = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map = new google.maps.Map(document.getElementById('map'), {
center: latlng2,
zoom: zm,
styles: myStyles
});
var request2 = {
location: latlng2,
radius: 2000,
types: [ft]
};
service.nearbySearch(request2, callback);
});
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
createMarker(results[i],icon);
}
}
}
function createMarker(place,icon) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location,
icon: icon,
visible:true
});
markersArray.push(marker);
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent("<b>Name:</b>"+place.name+"<br><b>Address:</b>"+place.vicinity);
infowindow.open(map, this);
});
}
如果你能帮助我,我将非常感激。
【问题讨论】:
-
请提供一个minimal reproducible example 来证明您的问题。我怀疑地理定位是必需的(除非问题是它不起作用)。
标签: javascript google-maps google-maps-api-3 google-places-api google-places