Skip to content Skip to sidebar Skip to footer

Google Maps Addgeojson From Text Field With Js

I am trying to insert an polygon to a google map. The Coordinates for the polygon are in a Textfield value stored like this : {'type':'Polygon','coordinates':[[[9.99893181141,53.77

Solution 1:

To convert text to JSON, use 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;

code snippet:

var geocoder;
var map;

functioninitialize() {
  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
}
<scriptsrc="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script><divid="map_canvas"></div><inputid="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]]]}'
/>;
<inputid="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]]]}'
/><inputid="btn"type="button"value="poly2" />

Post a Comment for "Google Maps Addgeojson From Text Field With Js"