gpt4 book ai didi

javascript - google maps addGeoJson 来自带有js的文本字段

转载 作者:行者123 更新时间:2023-11-30 15:55:59 26 4
gpt4 key购买 nike

我正在尝试将多边形插入谷歌地图。多边形的坐标存储在一个文本字段值中,如下所示:{“类型”:“多边形”,“坐标”:[[[9.99893181141,53.7746888818],[9.53475944814,53.5745692488],[9.94125358875,53.3636652005],[10.4136656981 ,53.5223496849],[10.3285216551,53.7860492252],[10.1966857177 ,53.7892944727],[9.99893181141,53.7746888818]]]}

我知道我可以使用 map.data.addGeoJson(geoJson); 将 geojson 文件加载到 map 中,但我无法以正确的方式(使用 js)设置值的格式。

我正在寻找这样的解决方案:

    textfieldvalue = document.getElementById('mytextfield').value;

// if nessesary convert textfield to geojson. How to convert
convertettextfield = howtoconvert;

//I dont know if its right like this?
var geoJson = {

"type": "FeatureCollection",
"features": [
"type": "Feature",
"geometry": {

},
"properties": {}
]
};
//add convertettextfield to geoJson. How?
geoJson.howtoputitintogeometry(convertettextfield);
map.data.addGeoJson(geoJson);

最佳答案

要将文本转换为 JSON,请使用 JSON.parse

<input id="polyJson" type="text" value='{"type":"Polygon","coordinates":[[[9.99893181141,53.7746888818],[9.53475944814,53.5745692488],[9.94125358875,53.3636652005],[10.4136656981,53.5223496849],[10.3285216551,53.7860492252],[10.1966857177,53.7892944727],[9.99893181141,53.7746888818]]]}' />

var polyJson_txt = document.getElementById('polyJson').value;
var polygonJson = JSON.parse(polyJson_txt);
geoJson.features[0].geometry = polygonJson;

代码片段:

var geocoder;
var map;

function initialize() {
var map = new google.maps.Map(
document.getElementById("map_canvas"), {
center: new google.maps.LatLng(37.4419, -122.1419),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var geoJson = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {},
"properties": {}
}]
};
geoJson.features[0].geometry = JSON.parse(document.getElementById('polyJson').value);
map.data.addListener('addfeature', function(evt) {
var bounds = new google.maps.LatLngBounds();
var coords = evt.feature.getGeometry().getAt(0).getArray();
for (var i = 0; i < coords.length; i++) {
bounds.extend(coords[i]);
}
map.fitBounds(bounds);
});
map.data.addGeoJson(geoJson);
google.maps.event.addDomListener(document.getElementById('btn'), 'click', function() {
geoJson.features[0].geometry = JSON.parse(document.getElementById('polyJson2').value);
map.data.addGeoJson(geoJson);
});
}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
<div id="map_canvas"></div>
<input id="polyJson" type="text" value='{"type":"Polygon","coordinates":[[[9.99893181141,53.7746888818],[9.53475944814,53.5745692488],[9.94125358875,53.3636652005],[10.4136656981,53.5223496849],[10.3285216551,53.7860492252],[10.1966857177,53.7892944727],[9.99893181141,53.7746888818]]]}'
/>;
<input id="polyJson2" type="text" value='{"type": "Polygon","coordinates": [[[35.188327,31.699929,0],[35.187895,31.699669,0],[35.187014,31.699729,0],[35.186867,31.700016,0],[35.186783,31.700395,0],[35.186921,31.700787,0],[35.187232,31.701291,0],[35.18763,31.701844,0],[35.187442,31.702328,0],[35.18692,31.702779,0],[35.187064,31.703654,0],[35.187433,31.703794,0],[35.188155,31.70344,0],[35.188921,31.702917,0],[35.189348,31.702887,0],[35.189828,31.70302,0],[35.190313,31.703443,0],[35.190359,31.704104,0],[35.190224,31.704348,0],[35.189797,31.704585,0],[35.189753,31.704948,0],[35.189847,31.705107,0],[35.190187,31.705015,0],[35.190604,31.705041,0],[35.190931,31.705171,0],[35.191435,31.70526,0],[35.191861,31.705231,0],[35.192482,31.705008,0],[35.192945,31.704893,0],[35.193564,31.704449,0],[35.192869,31.704004,0],[35.192256,31.703737,0],[35.191754,31.703371,0],[35.191306,31.703001,0],[35.190838,31.702632,0],[35.190546,31.70221,0],[35.190348,31.701739,0],[35.190323,31.701589,0],[35.189814,31.701624,0],[35.189443,31.701456,0],[35.189108,31.701217,0],[35.188509,31.700359,0],[35.188327,31.699929,0]]]}'
/>
<input id="btn" type="button" value="poly2" />

关于javascript - google maps addGeoJson 来自带有js的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38533700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com