Javascript 谷歌地图的外部API数据
我正在尝试使用外部API的数据在谷歌地图上创建一个多边形 API响应给出了以下内容:Javascript 谷歌地图的外部API数据,javascript,jquery,ajax,google-maps,google-maps-api-3,Javascript,Jquery,Ajax,Google Maps,Google Maps Api 3,我正在尝试使用外部API的数据在谷歌地图上创建一个多边形 API响应给出了以下内容: { "id": 28, "name": "Local spots", "description": "", "isprivate": true, "status": "active", "created_at": "2014-09-15T09:40:01.747Z", "geographic_extent": { "type": "Polygon", "coordinates": [
{
"id": 28,
"name": "Local spots",
"description": "",
"isprivate": true,
"status": "active",
"created_at": "2014-09-15T09:40:01.747Z",
"geographic_extent": {
"type": "Polygon",
"coordinates": [
[
[-0.508, 51.682],
[-0.53, 51.327],
[0.225, 51.323],
[0.167, 51.667],
[-0.508, 51.682]
]
]
},
如何提取地理范围坐标,并在谷歌地图上将其渲染为多边形我知道它应该是AJAX,但是get会返回整个数组吗
非常感谢你的帮助
谢谢
用于生成地图的脚本
var映射
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: new google.maps.LatLng(2.8,-187.3),
});
}
要从接收到的ajax响应中提取“geographic_extent”节点,可以使用JSON.parse函数。e、 g
var result = JSON.parse('{"id": 28,"name": "Local spots","description": "","isprivate": true,"status": "active","created_at": "2014-09-15T09:40:01.747Z","geographic_extent": {"type": "Polygon", "coordinates": [[[-0.508, 51.682],[-0.53, 51.327],[0.225, 51.323],[0.167, 51.667],[-0.508, 51.682]]]}');
现在你可以
-0.508,51.682,-0.53,51.327,0.225,51.323,0.167,51.667,-0.508,51.682
与
要将其打印为多边形,请使用以下代码
var triangleCoords = [
{lat: 25.774, lng: -80.190},
{lat: 18.466, lng: -66.118},
{lat: 32.321, lng: -64.757},
{lat: 25.774, lng: -80.190}
];
var bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
请注意三角形坐标系的定义方式,它是一个lat,lng对象数组。如果要绘制从ajax请求接收的多边形,需要将其放入类似的lat、lng对象数组中
var triangleCoords = [
{lat: 25.774, lng: -80.190},
{lat: 18.466, lng: -66.118},
{lat: 32.321, lng: -64.757},
{lat: 25.774, lng: -80.190}
];
var bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);