Google maps Google Places API-添加地点详细信息
我有以下代码:Google maps Google Places API-添加地点详细信息,google-maps,google-maps-api-3,google-places-api,Google Maps,Google Maps Api 3,Google Places Api,我有以下代码: function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(start,showError); } else{
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(start,showError);
}
else{
error('Geo Location is not supported');
}
}
function start(position) {
var mySearch = document.getElementById("search").value;
var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map = new google.maps.Map(document.getElementById('map'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: latlng,
zoom: 12
});
var request = {
location: latlng,
radius: 500,
query: mySearch
};
infowindow = new google.maps.InfoWindow();
service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}
function createMarker(place) {
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location,
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name, place.website);
infowindow.open(map, this);
});
}
函数getLocation()
{
if(导航器.地理位置)
{
navigator.geolocation.getCurrentPosition(开始、结束);
}
否则{
错误(“不支持地理位置”);
}
}
功能启动(位置){
var mySearch=document.getElementById(“搜索”).value;
var latlng=新的google.maps.latlng(position.coords.latitude,position.coords.longitude);
map=new google.maps.map(document.getElementById('map'){
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:拉特林,
缩放:12
});
var请求={
地点:拉丁美洲,
半径:500,
查询:mySearch
};
infowindow=new google.maps.infowindow();
服务=新的google.maps.places.PlacesService(地图);
文本搜索(请求、回调);
}
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i函数createMarker(位置){
var placeLoc=place.geometry.location;
if(place.icon){
var image=new google.maps.MarkerImage(
place.icon,新的google.maps.Size(71,71),
新的google.maps.Point(0,0),新的google.maps.Point(17,34),
新google.maps.Size(25,25));
}else-var-image=null;
var marker=new google.maps.marker({
地图:地图,
图标:图像,
位置:place.geometry.location
});
var请求={
参考:place.reference
};
google.maps.event.addListener(标记,'click',函数(){
service.getDetails(请求、功能(位置、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
var contentStr=''+place.name+''+place.formatted\u地址;
如果(!!place.formatted_phone_number)contentStr+='
'+place.formatted_phone_number;
如果(!!place.website)contentStr+='
';
contentStr+='
'+place.types+'';
infowindow.setContent(contentStr);
信息窗口。打开(地图、标记);
}否则{
var contentStr=“无结果,状态=“+status+”;
infowindow.setContent(contentStr);
信息窗口。打开(地图、标记);
}
});
});
}
调整“createMarker”功能(未测试):
函数createMarker(位置){
var placeLoc=place.geometry.location;
if(place.icon){
var image=new google.maps.MarkerImage(
place.icon,新的google.maps.Size(71,71),
新的google.maps.Point(0,0),新的google.maps.Point(17,34),
新google.maps.Size(25,25));
}else-var-image=null;
var marker=new google.maps.marker({
地图:地图,
图标:图像,
位置:place.geometry.location
});
var请求={
参考:place.reference
};
google.maps.event.addListener(标记,'click',函数(){
service.getDetails(请求、功能(位置、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
var contentStr=''+place.name+''+place.formatted\u地址;
如果(!!place.formatted_phone_number)contentStr+='
'+place.formatted_phone_number;
如果(!!place.website)contentStr+='
';
contentStr+='
'+place.types+'';
infowindow.setContent(contentStr);
信息窗口。打开(地图、标记);
}否则{
var contentStr=“无结果,状态=“+status+”;
infowindow.setContent(contentStr);
信息窗口。打开(地图、标记);
}
});
});
}
在Hiya中描述,谢谢,这真的很有帮助。还有一件事,我正在使用地理定位找到我的位置,我希望我的位置也被绘制在地图上。你知道怎么做吗?我更新了我的代码以显示地理位置我不使用地理位置,我在访问的任何页面上都拒绝使用它。这是一个完全不同的问题。这仍然是一个完全独立的问题,应该在StackOverflow上提交。你好,谢谢,这真的很有帮助。还有一件事,我正在使用地理定位找到我的位置,我希望我的位置也被绘制在地图上。你知道怎么做吗?我更新了我的代码以显示地理位置我不使用地理位置,我在访问的任何页面上都拒绝使用它。这是一个完全不同的问题,它仍然是一个完全独立的问题,应该在会议上提交。
function createMarker(place) {
var placeLoc = place.geometry.location;
if (place.icon) {
var image = new google.maps.MarkerImage(
place.icon, new google.maps.Size(71, 71),
new google.maps.Point(0, 0), new google.maps.Point(17, 34),
new google.maps.Size(25, 25));
} else var image = null;
var marker = new google.maps.Marker({
map: map,
icon: image,
position: place.geometry.location
});
var request = {
reference: place.reference
};
google.maps.event.addListener(marker,'click',function(){
service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
var contentStr = '<h5>'+place.name+'</h5><p>'+place.formatted_address;
if (!!place.formatted_phone_number) contentStr += '<br>'+place.formatted_phone_number;
if (!!place.website) contentStr += '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>';
contentStr += '<br>'+place.types+'</p>';
infowindow.setContent(contentStr);
infowindow.open(map,marker);
} else {
var contentStr = "<h5>No Result, status="+status+"</h5>";
infowindow.setContent(contentStr);
infowindow.open(map,marker);
}
});
});
}