我正在使用谷歌地图,我正在尝试在地图上创建一个多边形但由于某些原因,谷歌只是给了我没有多边形的地图
代码:
<script type="text/javascript">
var map;
var infoWindow;
var sandCoodrs;
function initialize() {
var myLatLng = new google.maps.LatLng(-26, 28);
var mapOptions = {
zoom: 10,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
var sandtonCoords = [];
//由于某种原因,在此之后,firebug不会进入代码并且sandtonCoords保持为null,因此没有多边形
jQuery.get('http://localhost/magnetic/Main.txt', function(data)
{
var StringData = data;
StringData.trim();
var MainArray = data.split(",");
var length = MainArray.length;
for(k=0;k<length;k++)
{
var StringCoords = MainArray[k];
var LatLongArray = StringCoords.split(" ");
var Lat = parseFloat(LatLongArray[0]);
Lat.trim();
var Long = parseFloat(LatLongArray[1]);
Long.trim();
sandtonCoords.push(new google.maps.LatLng(Lat,Long));
}
});
andton = new google.maps.Polygon({
paths: sandtonCoords,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 3,
fillColor: "#FF0000",
fillOpacity: 0.35
});
sandton.setMap(map);
// Add a listener for the click event
google.maps.event.addListener(sandton, 'click', showArrays);
infowindow = new google.maps.InfoWindow();
}`
答案 0 :(得分:0)
LatLongArray是一个字符串数组。纬度和经度是数值,类型转换不是自动的。因此:
var Lat = parseFloat(LatLongArray[0]);
var Long = parseFloat(LatLongArray[1]);
顺便说一句,确保你在Main.txt中的对是[lat lon]而不是[lon lat]。