it-swarm.com.de

Google Maps, wie Stadt oder Gebietsumrisse angezeigt werden

So zeigen Sie die Orte oder die Umrisse des Bereichs genauso wie die unten aufgeführten Websites an:

 enter image description here

Verknüpfung

Ich habe stundenlang in den offiziellen Kartendokumenten gesucht und es gab keinen Hinweis darauf, wie diese Website die Gebietsgrenzen anzeigt. Auch einige alte Fragen angeschaut und gelesen, dass es dann nicht möglich ist.

40
Chanakya Vadla

Nach dem, was ich gesucht habe, gibt es derzeit keine Option von Google in der Google Maps API Version 3 und es gibt ein Problem in der Google Maps API, das auf 2008 zurückgeht. Es gibt einige ältere Fragen - Hinzufügen Ergebnis "Suchbereich" auf Google Maps , Google hat Suchbereiche in Pink hervorgehoben. Ist diese Funktion in Google Maps API 3 verfügbar? Sie finden hier möglicherweise neuere Antworten mit aktualisierten Informationen, dies ist jedoch keine Funktion.

Was Sie tun können, ist das Zeichnen von Formen auf Ihrer Karte -, aber dafür benötigen Sie die Koordinaten der Grenzen Ihrer Region.

Um die Grenzen des Verwaltungsgebiets zu ermitteln, müssen Sie nun ein wenig arbeiten: http://www.gadm.org/country (wenn Sie Glück haben und dort genügend Details verfügbar sind) .

Auf dieser Website können Sie lokal eine Datei mit der Erweiterung .kmz herunterladen (es sind viele Formate verfügbar). Entpacken Sie es und Sie haben eine .kml-Datei, die die meisten Verwaltungsbereiche (Städte, Dörfer) enthält.

  <?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Schema name="x" id="x">
    <SimpleField name="ID_0" type="int"></SimpleField>
    <SimpleField name="ISO" type="string"></SimpleField>
    <SimpleField name="NAME_0" type="string"></SimpleField>
    <SimpleField name="ID_1" type="string"></SimpleField>
    <SimpleField name="NAME_1" type="string"></SimpleField>
    <SimpleField name="ID_2" type="string"></SimpleField>
    <SimpleField name="NAME_2" type="string"></SimpleField>
    <SimpleField name="TYPE_2" type="string"></SimpleField>
    <SimpleField name="ENGTYPE_2" type="string"></SimpleField>
    <SimpleField name="NL_NAME_2" type="string"></SimpleField>
    <SimpleField name="VARNAME_2" type="string"></SimpleField>
    <SimpleField name="Shape_Length" type="float"></SimpleField>
    <SimpleField name="Shape_Area" type="float"></SimpleField>
</Schema>
<Folder><name>x</name>
  <Placemark>
    <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
    <ExtendedData><SchemaData schemaUrl="#x">
        <SimpleData name="ID_0">186</SimpleData>
        <SimpleData name="ISO">ROU</SimpleData>
        <SimpleData name="NAME_0">Romania</SimpleData>
        <SimpleData name="ID_1">1</SimpleData>
        <SimpleData name="NAME_1">Alba</SimpleData>
        <SimpleData name="ID_2">1</SimpleData>
        <SimpleData name="NAME_2">Abrud</SimpleData>
        <SimpleData name="TYPE_2">Comune</SimpleData>
        <SimpleData name="ENGTYPE_2">Commune</SimpleData>
        <SimpleData name="VARNAME_2">Oras Abrud</SimpleData>
        <SimpleData name="Shape_Length">0.2792904164402</SimpleData>
        <SimpleData name="Shape_Area">0.00302673357146115</SimpleData>
    </SchemaData></ExtendedData>
      <MultiGeometry><Polygon><outerBoundaryIs><LinearRing><coordinates>23.117561340332031,46.269237518310547 23.108898162841797,46.265365600585937 23.107486724853629,46.264305114746207 23.104681015014762,46.260105133056641 23.101633071899471,46.250000000000114 23.100803375244254,46.249053955078239 23.097520828247184,46.246582031250114 23.0965576171875,46.245487213134822 23.095674514770508,46.244930267334098 23.092174530029354,46.243438720703182 23.088010787963924,46.240383148193473 23.083366394043082,46.238204956054801 23.075212478637809,46.234935760498047 23.071325302123967,46.239696502685547 23.070602416992131,46.241668701171875 23.069700241088924,46.242824554443416 23.068435668945369,46.243541717529354 23.066627502441406,46.244037628173771 23.064964294433651,46.246234893798885 23.062850952148437,46.247486114501953 23.0626220703125,46.248153686523438 23.062761306762752,46.250873565673942 23.061862945556697,46.255172729492301 23.061449050903434,46.256267547607422 23.05998420715332,46.258060455322322 23.057676315307674,46.259838104248161 23.055141448974666,46.262714385986442 23.053401947021484,46.264244079589901 23.049621582031193,46.266674041748161 23.043565750122013,46.268516540527457 23.041521072387695,46.269458770751953 23.034791946411076,46.270542144775334 23.027051925659293,46.27105712890625 23.025453567504826,46.271255493164063 23.022710800170898,46.272083282470703 23.020351409912053,46.271331787109432 23.018688201904297,46.270687103271598 23.015596389770508,46.270793914794922 23.014116287231502,46.271579742431697 23.009817123413143,46.275333404541016 23.006668090820426,46.277061462402401 23.004106521606445,46.279254913330135 23.001775741577205,46.282882690429688 23.005559921264648,46.283077239990348 23.009967803955135,46.28415679931652 23.014947891235465,46.286224365234489 23.019996643066463,46.28900146484375 23.024263381958121,46.292709350586051 23.027633666992301,46.295299530029411 23.028041839599609,46.295692443847656 23.032444000244197,46.294342041015625 23.03491401672369,46.293315887451229 23.044847488403434,46.290401458740234 23.047790527343807,46.28928375244152 23.053009033203239,46.288627624511719 23.057231903076229,46.288341522216797 23.064565658569393,46.287548065185547 23.070388793945426,46.286254882812614 23.075139999389592,46.284847259521428 23.075983047485465,46.284801483154411 23.085800170898494,46.28253173828125 23.098115921020451,46.280982971191406 23.099718093872127,46.280590057373104 23.105833053588981,46.278388977050838 23.112155914306641,46.274082183837947 23.116207122802791,46.270610809326172 23.117561340332031,46.269237518310547</coordinates></LinearRing></outerBoundaryIs></Polygon></MultiGeometry>
  </Placemark>
</Folder>
</Document></kml>

Wenn der Nutzer nach einer Stadt/einem Dorf sucht, werden die Grenzen abgerufen und um diese Koordinaten auf der Karte gezeichnet - https://developers.google.com/maps/documentation/javascript/overlays#Polygons

Ich hoffe das hilft dir! Viel Glück!

 border on Google Map using the above coordinates UPDATE: Ich habe die Grenzen dieser Stadt mit den obigen Koordinaten erstellt 

                   var ctaLayer = new google.maps.KmlLayer({
                       url: 'https://www.dropbox.com/s/0grhlim3q4572jp/ROU_adm2%20-%20Copy.kml?dl=1'
  });
  ctaLayer.setMap(map);

(Ich habe eine kleine kml-Datei in meine Dropbox gelegt, die die Grenzen einer einzelnen Stadt enthält.)

Beachten Sie, dass dabei das in Google eingebaute KML-System verwendet wird, bei dem der Server die Datei abruft, die Ansicht berechnet und Ihnen zurückgibt - es hat eine begrenzte Verwendung und ich habe damit gezeigt, wie die Grenzen aussehen. In Ihrer Anwendung sollten Sie in der Lage sein, die Koordinaten aus der kml-Datei zu parsen und sie in ein Array einzufügen (wie aus der Polygon-Dokumentation hervorgeht - https://developers.google.com/maps/documentation/javascript/examples/polygon -arrays ) und zeigen sie an.

Beachten Sie, dass es Unterschiede zwischen den Grenzen gibt, die Google auf http://www.google.com/maps festgelegt hat, und den Grenzen, die Sie mit diesen Daten erhalten.

Viel Glück!  enter image description here

UPDATE: http://Pastebin.com/x2V1aarJ , http://Pastebin.com/Gh55EDW5 Dies sind die Javascript-Dateien (sie wurden minimiert, daher habe ich ein Online-Tool verwendet, um sie lesbar zu machen). von der Website. Wenn Sie mit dieser Lösung nicht ganz zufrieden sind, können Sie sie gerne studieren.

Viel Glück!

62
radu-matei

ich suchte das Gleiche und fand die Antwort,

die Lösung ist, die gestaltete Karte zu verwenden. Auf dem Link unten können Sie Ihre benutzerdefinierten Stile mithilfe des Assistenten erstellen und gleichzeitig testen. google map style assistent

sie können alle verfügbaren Optionen überprüfen: hier

hier ist mein Beispielcode, der eine Begrenzung für Zustände schafft und alle Straßen und deren Beschriftungen ausblenden.

    var styles = [
  {
    "featureType": "administrative.province",
    "elementType": "geometry.stroke",
    "stylers": [
      { "visibility": "on" },
      { "weight": 2.5 },
      { "color": "#24b0e2" }
    ]
  },{
    "featureType": "road",
    "elementType": "geometry",
    "stylers": [
      { "visibility": "off" }
    ]
  },{
    "featureType": "administrative.locality",
    "stylers": [
      { "visibility": "off" }
    ]
  },{
    "featureType": "road",
    "elementType": "labels",
    "stylers": [
      { "visibility": "off" }
    ]
  }
];

  var  geocoder = new google.maps.Geocoder();
   geocoder.geocode({
       'address': "rajasthan"
   }, (results, status)=> {
     var mapOpts = {
       mapTypeId: google.maps.MapTypeId.ROADMAP,
       scaleControl: true,
       scrollwheel: false,
       styles:styles,
       center: results[0].geometry.location,
       zoom:6
     }
     map = new google.maps.Map(document.getElementById("map"), mapOpts);
   });
4
abhirathore2006

ich habe also eine Lösung, die nicht perfekt ist, aber für mich funktioniert hat. Verwenden Sie das Polygon-Beispiel von Google und verwenden Sie den Punkt in Google Maps, um Lat- und Long-Positionen zu ermitteln.

Calgary-Spitze

Ich habe das verwendet, was ich "Okular Copy & Paste" nenne, wo Sie auf den Bildschirm schauen und dann die gewünschten Zahlen eingeben.

<style>
  #map {
    height: 500px;
  }
</style>
<script>

// This example creates a simple polygon representing the Host city of the 
// Greatest Outdoor Show On Earth.

 function initMap() {
   var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 9,
      center: {lat: 51.039, lng: -114.204},
      mapTypeId: 'terrain'
    });

    // Define the LatLng coordinates for the polygon's path.
    var triangleCoords = [
      {lat: 51.183, lng: -114.234},
      {lat: 51.154, lng: -114.235},
      {lat: 51.156, lng: -114.261},
      {lat: 51.104, lng: -114.259},
      {lat: 51.106, lng: -114.261},
      {lat: 51.102, lng: -114.272},
      {lat: 51.081, lng: -114.271},
      {lat: 51.081, lng: -114.234},
      {lat: 51.009, lng: -114.236},
      {lat: 51.008, lng: -114.141},
      {lat: 50.995, lng: -114.142},
      {lat: 50.998, lng: -114.160},
      {lat: 50.984, lng: -114.163},
      {lat: 50.987, lng: -114.141},
      {lat: 50.979, lng: -114.141},
      {lat: 50.921, lng: -114.141},
      {lat: 50.921, lng: -114.210},
      {lat: 50.893, lng: -114.210},
      {lat: 50.892, lng: -114.140},
      {lat: 50.888, lng: -114.139},
      {lat: 50.878, lng: -114.094},
      {lat: 50.878, lng: -113.994},
      {lat: 50.840, lng: -113.954},
      {lat: 50.854, lng: -113.905},
      {lat: 50.922, lng: -113.906},
      {lat: 50.935, lng: -113.877},
      {lat: 50.943, lng: -113.877},
      {lat: 50.955, lng: -113.912},
      {lat: 51.183, lng: -113.910}
    ];

    // Construct the polygon.
    var bermudaTriangle = new google.maps.Polygon({
      paths: triangleCoords,
      strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 2,
      fillColor: '#FF0000',
      fillOpacity: 0.35
    });
    bermudaTriangle.setMap(map);
  }
</script>


<div id="map"></div>
<script async defer src="https://maps.googleapis.com/maps/api/jskey=YOUR_API_KEY&callback=initMap">
</script>

Dies gibt Ihnen die Übersicht für Calgary. Ich habe hier ein Bild angehängt.

1
Jeremy

Ich habe versucht, Twitter Geo API, fehlgeschlagen.

Google-Map-API, fehlgeschlagen, bisher kann auf keinem API ein Stadtlimit erreicht werden.

Twitter-API-Geo-Endpunkt gibt Ihnen NICHT die Stadtgrenze.

was sie bieten, ist NUR eine Begrenzungsbox mit 5 Punkten (lat, long)

das ist, was ich von Twitter api geo für San Francisco bekomme enter image description here

0
hoogw