如何结合两个谷歌地图API
How combine two Google Maps API
我在我的网站上使用谷歌地图API做两件事:
第一个用于显示地图:
jQuery(document).ready(function($) {
function initialize_business() {
var map_move = $(document).width() > 850 ? true : false;
var map_center = new google.maps.LatLng(parseFloat($('#business_sidebar_map').attr('data-lat')), parseFloat($('#business_sidebar_map').attr('data-lng')));
var map_options = {
zoom: 14,
center: map_center,
zoomControl: false,
scaleControl: false,
draggable: false,
scrollwheel: false,
mapTypeControl: false,
streetViewControl: false,
};
var map = new google.maps.Map(document.getElementById('business_sidebar_map'), map_options);
new google.maps.Marker({
position: map_center,
map: map,
icon: js_string.template_directory + '/images/marker.png'
});
}
google.maps.event.addDomListener(window, 'resize', initialize_business);
google.maps.event.addDomListener(window, 'load', initialize_business);
});
和这个地图我需要下一个api链接:
<script src="https://maps.googleapis.com/maps/api/js"></script>
其次,我使用谷歌地图API从我的地址查找GPS:
function google_geocoding() {
var autocomplete = new google.maps.places.Autocomplete(document.getElementById('address'), {
types: ['geocode'],
componentRestrictions: {country: 'cz'},
});
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
window.alert('Bohužel jsme nanašli žádnou lokaci');
return;
}
document.getElementById('address_lat').value = place.geometry.location.lat();
document.getElementById('address_lng').value = place.geometry.location.lng();
});
}
和这个事件,我需要下一个api链接:
<script src="https://maps.googleapis.com/maps/api/js?libraries=places®ion=cz&callback=google_geocoding"></script>
在控制台我看到下一个错误:
你已经在这个页面包含了多次Google Maps API
所以我可能需要将谷歌脚本链接组合为一个,但我不知道如何。
Thanks for help
我找到解决办法了:
调用一次google maps API
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places®ion=cz">
而不是回调参数,我简单调用函数,所以最后的脚本是:
jQuery(document).ready(function($) {
if($('#business_sidebar_map').length > 0) {
function initialize_business() {
var map_move = $(document).width() > 850 ? true : false;
var map_center = new google.maps.LatLng(parseFloat($('#business_sidebar_map').attr('data-lat')), parseFloat($('#business_sidebar_map').attr('data-lng')));
var map_options = {
zoom: 14,
center: map_center,
zoomControl: false,
scaleControl: false,
draggable: false,
scrollwheel: false,
mapTypeControl: false,
streetViewControl: false,
};
var map = new google.maps.Map(document.getElementById('business_sidebar_map'), map_options);
new google.maps.Marker({
position: map_center,
map: map,
icon: js_string.template_directory + '/images/marker.png'
});
}
google.maps.event.addDomListener(window, 'resize', initialize_business);
google.maps.event.addDomListener(window, 'load', initialize_business);
}
if($('#address').length > 0) {
function google_geocoding() {
var autocomplete = new google.maps.places.Autocomplete(document.getElementById('address'), {
types: ['geocode'],
componentRestrictions: {country: 'cz'},
});
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
window.alert('Bohužel jsme nanašli žádnou lokaci');
return;
}
document.getElementById('address_lat').value = place.geometry.location.lat();
document.getElementById('address_lng').value = place.geometry.location.lng();
});
}
google_geocoding();
}
});
相关文章:
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 如果同一页面上有多个谷歌地图,单击任何标记都会突出显示最底部的地图标记
- 同一页面上有两个谷歌图表的渲染问题
- 无法在一个页面中添加多个谷歌地图
- 一个页面上有多个谷歌地图
- 是否可以在单个html文件中添加两个谷歌地图API(绘图和几何)
- 将多个谷歌地图绘制到页面
- 如何在一个页面中显示带有弹出按钮的多个谷歌地图
- 使用多个谷歌地图 API 键
- 在同一页面中制作两个谷歌图表
- 一个页面上的多个谷歌地图实例
- 将两个谷歌地图添加到一个HTML页面上
- 想要在一个页面中显示n个谷歌地图
- 一个页面上的多个谷歌地图具有相同的风格
- 如何将单独的infoWindows添加到多个谷歌地图标记
- 创建了10多个谷歌地图api密钥(V2)
- 如何创建两个谷歌地图
- 两个页面上的三个谷歌地图(谷歌地图V3)
- 如何结合两个谷歌地图API
- 是否有可能覆盖两个谷歌地图