Google API 地点使用引用 ID 初始化地图
Google API Places initialize map with reference id
我尝试使用带有getDetails()方法的Google api位置。我只需要带有数据库中引用键位置的地图。有没有办法使用地图并直接使用参考键设置位置?
当前代码:
function initialize() {
var map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(-33.8665433, 151.1956316),
zoom: 15
});
var request = {
reference: 'CqQBkQAAAJ2ovSaBhBgD-_zyhNR-T2ZzfIKlpbvRqXRYM4K2gsbKuHuGiqIYeJ8cJDmecpxjUTM28LZ3f1XmeUQXg9jxJt_sHmDmLPiWUMP9fUYUH7yyQMzeWM9GzBqRZgUs_g6ylpLBnJffvWbqTWA3ArwSeyJoSDNG7yHlsaauOW5vFIUB34l6i3Z7mDkZ0exhcQ_tMGTudsddisZ96eoT3qZfgjkSEC4k4UTdl9VEZpoK0FFewhcaFI_IrhKbeTIiOizX6HF-SkDbO8hR'
};
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
}
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name);
infowindow.open(map, this);
});
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
地图首先加载悉尼,在谷歌响应后几毫秒后,地图将定位到参考键的位置。
我的想法是直接使用 refenrence 键初始化地图,而无需先创建地图等等......我认为我的解决方案不是最好的,有更好的方法吗?
一个选项。使用 places 回调初始化地图,在未返回结果的情况下提供回退:
function initialize() {
var request = {
reference: 'CqQBkQAAAJ2ovSaBhBgD-_zyhNR-T2ZzfIKlpbvRqXRYM4K2gsbKuHuGiqIYeJ8cJDmecpxjUTM28LZ3f1XmeUQXg9jxJt_sHmDmLPiWUMP9fUYUH7yyQMzeWM9GzBqRZgUs_g6ylpLBnJffvWbqTWA3ArwSeyJoSDNG7yHlsaauOW5vFIUB34l6i3Z7mDkZ0exhcQ_tMGTudsddisZ96eoT3qZfgjkSEC4k4UTdl9VEZpoK0FFewhcaFI_IrhKbeTIiOizX6HF-SkDbO8hR'
};
var map = new google.maps.Map(document.getElementById('map-canvas'));
var infowindow = new google.maps.InfoWindow();
var service = new google.maps.places.PlacesService(map);
service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
var marker = new google.maps.Marker({
map: map,
position: place.geometry.location
});
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(17);
}
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(place.name);
infowindow.open(map, this);
});
} else {
// fall back if places request fails.
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(-33.8665433, 151.1956316),
zoom: 15
});
}
});
}
google.maps.event.addDomListener(window, 'load', initialize);
相关文章:
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- 如何在Javascript中将来自另一个页面的ID引用为变量
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- 如何在给定 id 的情况下引用“标题”
- 用户输入的动态表,单元格id作为网格引用
- 如何在另一个视图中获取元素的引用id-UI5
- 按对象的 ID 删除对选定对象的对象引用
- 如何通过它引用谷歌地图标记's id并激活它's使用javascript单击事件
- 在jQuery中,按ID、类名或标记名引用的效率最高吗
- 引用显式元素 ID
- 使用 javascript 通过 ID 正确引用对象
- 未捕获的引用错误: 未定义导出 ID
- 如何使用 ahref 链接引用另一个页面 ID
- 使用 JavaScript 变量来引用 ID 包含该变量的元素
- 如何从外部 js 文件引用 id
- Knockoutjs引用ID中的对象
- 为什么我不能使用委托来引用id ?
- PHP 循环中的多个 Google 地图,带有 JavaScript 和引用 ID
- Google API 地点使用引用 ID 初始化地图
- 有没有一种简单的方法可以使用集合的键引用 ID