我在网站上设置了Google地图,根据地址设置标记。
以下是一个示例(点击位置标签):http://www.weddinghouse.com.au/wedding-directory/zoning-in-personal-training/
如您所见,地图上没有标记。但是如果向上滚动,标记就位于视野之外。
我的代码有问题吗?奇怪的是很少有地址实际显示正确,但大多数地址没有。我的代码有什么问题,还是谷歌?
这是我的JavaScript代码:
<script type="text/javascript">
$(document).ready(function(){
load('Zoning In Personal Training', '27 Sitella Drive, berwick, VIC, 3806');
});
</script>
-
function load(title, address, type) {
if (GBrowserIsCompatible()) {
var map;
var geocoder;
map_id = document.getElementById("map");
map = new GMap2(map_id);
map.addControl(new GSmallMapControl());
map.setCenter(new GLatLng(24, 0), 17);
map.enableDoubleClickZoom();
if (type == 'sat') {
map.setMapType(G_SATELLITE_MAP);
map.addControl(new GHierarchicalMapTypeControl());
} else {
map.setMapType(G_NORMAL_MAP);
}
geocoder = new GClientGeocoder();
geocoder.getLocations(address, function (response) {
map.clearOverlays();
if (!response || response.Status.code != 200) {
//map_id.innerHTML('Could not find address on Google Maps');
} else {
place = response.Placemark[0];
point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
map.setCenter(point, 17);
// Create our "tiny" marker icon
var icon = new GIcon();
icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);
// Creates one of our tiny markers at the given point
function createMarker(point, index) {
var marker = new GMarker(point, icon);
var myMarkerContent = "<div style=\"width:200px; overflow:auto;\"><strong>" + title + "</strong><br />" + address + "</div>";
map.addOverlay(marker);
marker.openInfoWindowHtml(myMarkerContent);
GEvent.addListener(marker,"click",function() {
marker.openInfoWindowHtml(myMarkerContent);
});
}
createMarker(point);
}
});
}
}
答案 0 :(得分:5)
如果你在google地图中加载页面,然后点击“链接”功能,它会为你提供代码,将网站嵌入到iFrame而不是搞乱API - 你可以试试吗?
还有一个错误,有时标记不居中,特别是在隐藏的div上。我最好的办法是将谷歌地图的iFrame放在一个单独的文件中(例如pages / map.html),然后将其作为页面中iFrame的来源。
例如 - 而不是iFrame src =“maps.google / etc etc” 把它作为src =“pages / map.html”
无论如何,这篇文章是6个月大,但迟到总比没有好!
答案 1 :(得分:0)
对我来说,问题是加载地图时iframe的大小为0(显示:隐藏)。在加载iframe之后,我添加了加载地图的延迟。这种竞争条件可以解释为什么一些地址正确呈现。
也许试试这个:
<script type="text/javascript">
$(document).ready(function(){
setTimeout("delayedLoad()",100);
});
function delayedLoad() {
load('Zoning In Personal Training', '27 Sitella Drive, berwick, VIC, 3806');
}
</script>
(感谢https://groups.google.com/forum/#!topic/google-maps-api/nN0y2pSr2dQ)