Javascript 从板条点阵列填充Google Maps多边形
我有一个LatLng格式的坐标数组。我想用这些坐标构造一个多边形。我知道我可以用单独的坐标对多边形进行硬编码,如下所示:Javascript 从板条点阵列填充Google Maps多边形,javascript,google-maps,google-maps-api-3,latitude-longitude,Javascript,Google Maps,Google Maps Api 3,Latitude Longitude,我有一个LatLng格式的坐标数组。我想用这些坐标构造一个多边形。我知道我可以用单独的坐标对多边形进行硬编码,如下所示: var triangleCoords = [ {lat: A, lng: A}, {lat: B, lng: B}, {lat: C, lng: C}] 是否可以将阵列中的LatLng数据点放置到三角形坐标系中,并以这种方式创建多边形 如果我误解了你的问题,请纠正我 Q: 是否可以将阵列中的LatLng数据点放置到三角形坐标系中,并以这种方式创建多边
var triangleCoords = [
{lat: A, lng: A},
{lat: B, lng: B},
{lat: C, lng: C}]
是否可以将阵列中的LatLng数据点放置到三角形坐标系中,并以这种方式创建多边形 如果我误解了你的问题,请纠正我 Q: 是否可以将阵列中的LatLng数据点放置到三角形坐标系中,并以这种方式创建多边形 A:
var map = new google.maps.Map(document.getElementById("map"),
{
zoom: 4,
center: new google.maps.LatLng(22.7964, 79.8456),
mapTypeId: google.maps.MapTypeId.HYBRID
});
var coordinateA = new google.maps.LatLng(18.979026,72.949219);
var coordinateB = new google.maps.LatLng(28.613459,77.255859);
var coordinateC = new google.maps.LatLng(22.512557,88.417969);
var coordinateD = new google.maps.LatLng(12.940322,77.607422);
var coords =
[
{lat: coordinateA.lat(), lng: coordinateA.lng() },
{lat: coordinateB.lat(), lng: coordinateB.lng() },
{lat: coordinateC.lat(), lng: coordinateC.lng() },
{lat: coordinateD.lat(), lng: coordinateD.lng() }
];
metros = new google.maps.Polygon(
{
paths: coords,
strokeColor: "#0000FF",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#0000FF",
fillOpacity: 0.26
});
简短回答:没有。不幸的是,google.maps.Polygon
代码中没有智能,它会神奇地尝试为您计算指定的google.maps.LatLng
对象的lat
和lng
坐标
您需要使用lat()
和lng()
api从google.maps.LatLng
对象返回原始坐标值,并将其插入数组中。没有捷径
示例:
var map = new google.maps.Map(document.getElementById("map"),
{
zoom: 4,
center: new google.maps.LatLng(22.7964, 79.8456),
mapTypeId: google.maps.MapTypeId.HYBRID
});
var coordinateA = new google.maps.LatLng(18.979026,72.949219);
var coordinateB = new google.maps.LatLng(28.613459,77.255859);
var coordinateC = new google.maps.LatLng(22.512557,88.417969);
var coordinateD = new google.maps.LatLng(12.940322,77.607422);
var coords =
[
{lat: coordinateA.lat(), lng: coordinateA.lng() },
{lat: coordinateB.lat(), lng: coordinateB.lng() },
{lat: coordinateC.lat(), lng: coordinateC.lng() },
{lat: coordinateD.lat(), lng: coordinateD.lng() }
];
metros = new google.maps.Polygon(
{
paths: coords,
strokeColor: "#0000FF",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#0000FF",
fillOpacity: 0.26
});
请参阅,以获取一个有效的JSFIDLE示例。
如果我误解了你的问题,请纠正我 Q: 是否可以将阵列中的LatLng数据点放置到三角形坐标系中,并以这种方式创建多边形 A:
var map = new google.maps.Map(document.getElementById("map"),
{
zoom: 4,
center: new google.maps.LatLng(22.7964, 79.8456),
mapTypeId: google.maps.MapTypeId.HYBRID
});
var coordinateA = new google.maps.LatLng(18.979026,72.949219);
var coordinateB = new google.maps.LatLng(28.613459,77.255859);
var coordinateC = new google.maps.LatLng(22.512557,88.417969);
var coordinateD = new google.maps.LatLng(12.940322,77.607422);
var coords =
[
{lat: coordinateA.lat(), lng: coordinateA.lng() },
{lat: coordinateB.lat(), lng: coordinateB.lng() },
{lat: coordinateC.lat(), lng: coordinateC.lng() },
{lat: coordinateD.lat(), lng: coordinateD.lng() }
];
metros = new google.maps.Polygon(
{
paths: coords,
strokeColor: "#0000FF",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#0000FF",
fillOpacity: 0.26
});
简短回答:没有。不幸的是,google.maps.Polygon
代码中没有智能,它会神奇地尝试为您计算指定的google.maps.LatLng
对象的lat
和lng
坐标
您需要使用lat()
和lng()
api从google.maps.LatLng
对象返回原始坐标值,并将其插入数组中。没有捷径
示例:
var map = new google.maps.Map(document.getElementById("map"),
{
zoom: 4,
center: new google.maps.LatLng(22.7964, 79.8456),
mapTypeId: google.maps.MapTypeId.HYBRID
});
var coordinateA = new google.maps.LatLng(18.979026,72.949219);
var coordinateB = new google.maps.LatLng(28.613459,77.255859);
var coordinateC = new google.maps.LatLng(22.512557,88.417969);
var coordinateD = new google.maps.LatLng(12.940322,77.607422);
var coords =
[
{lat: coordinateA.lat(), lng: coordinateA.lng() },
{lat: coordinateB.lat(), lng: coordinateB.lng() },
{lat: coordinateC.lat(), lng: coordinateC.lng() },
{lat: coordinateD.lat(), lng: coordinateD.lng() }
];
metros = new google.maps.Polygon(
{
paths: coords,
strokeColor: "#0000FF",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#0000FF",
fillOpacity: 0.26
});
请参阅,以获取一个有效的JSFIDLE示例。
在这里,我尝试从mysql动态创建多边形google route map,它只对marker有效,但对多边形无效 这是密码
函数initMap()
{
var map=new google.maps.map(document.getElementById('map'){
缩放:5,
中心:{lat:13.36,lng:77.03},
});
var plancoardinates=新数组();
//变量位置=[
//{拉丁美洲:13.367797388285002,液化天然气:77.03707749682616},
//{拉丁美洲:13.341074247677549,液化天然气:77.0394807561035},
//{拉丁美洲:13.379153826558369,液化天然气:77.08685929614256},
//{拉丁美洲:13.367797388285002,液化天然气:77.03707749682616},
// ];
变量位置=[{lat:,lng:}];
for(设i=0;i
在这里,我尝试从mysql动态创建多边形google route map,它只对marker有效,但对多边形无效
这是密码
函数initMap()
{
var map=new google.maps.map(document.getElementById('map'){
缩放:5,
中心:{lat:13.36,lng:77.03},
});
var plancoardinates=新数组();
//变量位置=[
//{拉丁美洲:13.367797388285002,液化天然气:77.03707749682616},
//{拉丁美洲:13.341074247677549,液化天然气:77.0394807561035},
//{拉丁美洲:13.379153826558369,液化天然气:77.08685929614256},
//{拉丁美洲:13.367797388285002,液化天然气:77.03707749682616},
// ];
变量位置=[{lat:,lng:}];
for(设i=0;i