Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图v3-Can';t获取要在地图上显示的多边形和/或矩形_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图v3-Can';t获取要在地图上显示的多边形和/或矩形

Javascript 谷歌地图v3-Can';t获取要在地图上显示的多边形和/或矩形,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我一直在开发一个.NET地理编码应用程序,它最终会显示一个地址或地点的谷歌地图(使用V3API)。地图中央有一个标记,表示地理编码的点。这一切都有效。然后,我想在地图上显示一个矩形/多边形形状覆盖,表示地理编码点周围的边界(这反映了地理编码的准确性,边界越大表示精度越低)。(我从API查询中得到这些边界的坐标) 然而,我只是无法在地图上显示多边形或矩形,这让我发疯!我已经按照程序中的说明进行了操作,但没有任何乐趣。我试过google.maps.Polygon和google.maps.Rectan

我一直在开发一个.NET地理编码应用程序,它最终会显示一个地址或地点的谷歌地图(使用V3API)。地图中央有一个标记,表示地理编码的点。这一切都有效。然后,我想在地图上显示一个矩形/多边形形状覆盖,表示地理编码点周围的边界(这反映了地理编码的准确性,边界越大表示精度越低)。(我从API查询中得到这些边界的坐标)

然而,我只是无法在地图上显示多边形或矩形,这让我发疯!我已经按照程序中的说明进行了操作,但没有任何乐趣。我试过
google.maps.Polygon
google.maps.Rectangle
,但都没有成功。我也尝试了不同的lat/lngs的边界,但没有任何区别。什么也没出现过。我一定犯了一些根本性的错误,但在这些树林里我看不到任何树木

我的基本代码(由C#生成)如下所示:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    if (window.attachEvent) {window.attachEvent('onload', initMap);}
        else if (window.addEventListener) {window.addEventListener('load', initMap, false);}
        else {document.addEventListener('load', initMap, false);}

    function initMap() {
        var latlng = new google.maps.LatLng(51.5001524,-0.1262362);
        var myOptions = { zoom: 15, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
        var map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
        var marker = new google.maps.Marker({
            position: latlng, map: map, title:'Westminster, London, UK' 
        });
        var boundCoords = [
            new google.maps.LatLng(51.3493528),
            new google.maps.LatLng(-0.378358),
            new google.maps.LatLng(51.7040647),
            new google.maps.LatLng(0.1502295),
        ];
        var poly = new google.maps.Polygon({
            paths: boundCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, 
            strokeWeight: 3, fillColor: '#FF0000', fillOpacity: 0.35 
        });
        poly.setMap(map); 
        console.log(poly);
    }
</script>

<div id="map_canvas" style="width:640px; height:480px"></div>

if(window.attachEvent){window.attachEvent('onload',initMap);}
else if(window.addEventListener){window.addEventListener('load',initMap,false);}
else{document.addEventListener('load',initMap,false);}
函数initMap(){
var latlng=新的google.maps.latlng(51.5001524,-0.1262362);
var myOptions={zoom:15,center:latlng,mapTypeId:google.maps.mapTypeId.ROADMAP};
var map=new google.maps.map(document.getElementById('map_canvas'),myOptions);
var marker=new google.maps.marker({
位置:latlng,地图:地图,标题:“英国伦敦威斯敏斯特”
});
var boundCoords=[
新google.maps.LatLng(51.3493528),
新google.maps.LatLng(-0.378358),
新的google.maps.LatLng(51.7040647),
新google.maps.LatLng(0.1502295),
];
var poly=new google.maps.Polygon({
路径:boundCoords,strokeColor:'#FF0000',StrokeCopacity:0.8,
笔划权重:3,填充颜色:'#FF0000',填充不透明度:0.35
});
poly.setMap(map);
控制台日志(poly);
}
有一个JSFIDLE版本可以使用

new google.maps.LatLng(51.3493528),
例如,您需要x,y坐标

new google.maps.LatLng(32.321384, -64.75737),

您需要两个标记,例如:

var latLngBounds = new google.maps.LatLngBounds(
   marker1.getPosition(),
   marker2.getPosition()
);
rectangle.setBounds(latLngBounds);

啊!真不敢相信我错过了!非常感谢您指出显而易见的问题(尽管我想知道为什么它没有导致JS错误?)