2016-10-18 1 views
-1

Ich habe eine vollständige Seitenkarte, und was ich tun möchte, ist fix ein Polygon/Rechteck über einen Teil der Karte wie such, so dass das Polygon in der bleiben wird der gleiche Ort, auch wenn, sagen wir, die Karte gezogen wurde. Dann möchte ich den Mittelpunkt des Polygons auf die Suchanfrage festlegen. Here is another image to illustrate what I mean. Leider scheint es aus der Dokumentation so, als ob Sie nur Polygone in einer anderen Ebene erstellen können, die sozusagen an bestimmte Kacheln auf der Basiskarte angefügt bleiben. Abgesehen von der Festlegung ihrer Grenzen werden in der Dokumentation keine Methoden zum Festlegen der Mitte eines Polygons aufgeführt.Verwenden der Mitte des Polygons als Mittelpunkt der Karte

So habe ich ein paar Fragen:

  1. Ist es sogar möglich, einen Polygon/Rechteck auf der Karte zu beheben, nicht in Bezug auf, aber unabhängig von den Positionen der Kartenkacheln in der Basisschicht ?
  2. Ist es möglich, die Mitte eines Polygons/Rechtecks ​​auf ein LatLng-Objekt (oder etwas Ähnliches) zu setzen und dann diese Ausrichtung zu verwenden, um die Karte als Ganzes zu positionieren?

P.S. Wenn du gehst, meine Frage zu downvote, zumindest mitteilen, warum und geben Sie mir eine Chance zu adressieren was auch immer Ihr Problem mit der Frage könnte sein ...

Antwort

0

würde ich absolute Positionierung ein div wie diese

<div id="mapdiv"> 
<div id="rect"></div> 
</div> 
empfehlen

und die CSS

#mapdiv { 
    position:relative; 
    width:600px; 
    height:400px; 
    background-color:#333; 
} 
#rect { 
    position:absolute; 
    top: 10%; 
    left: 10%; 
    width:80%; 
    height:80%; 
    background-color:#FFF; 
} 

wie für die Koordinaten und Polys durch die Karte. Ich habe einige Erfahrung mit Routen und so und würde sagen müssen, dass es möglich ist, die Form zu bekommen, aber Sie würden jedes Mal eine Karte erneuern und für absolute Positionierung benötigen. Nicht sicher, ob das möglich ist

+0

Ja, tut mir leid, vielleicht war ich nicht klar genug. Das Polygon/Rechteck, das ich mir vorstelle, muss Teil des Google Maps API sein oder dazu gehören (um Geokoordinaten abzurufen und was nicht), weil ich vorhabe, das Zentrum des Polygons/Rechtecks ​​zur Mitte der Karte zu machen, während das erlaubt wird Karte um ganze Seite zu sein. Grundsätzlich möchte ich die Position des "Zentrums" der Karte manipulieren. Vielen Dank für Ihre Aufmerksamkeit! @DevFX – gatekeeper01

+0

Ich weiß, es ist wahrscheinlich möglich, ein Polygon absolut in einer scheinbar festen Position über der Karte zu positionieren, aber der möglicherweise intensive Teil berechnet die Kartengrenzen in Relation zu den Fenstermaßen und zieht dann X und Y von den Kartengrenzen ab Erstellen Sie die Grenzen für das Polygon. Ich hoffe aber, dass es einen einfacheren Weg gibt. Was denken Sie? – gatekeeper01

0

Sorry für diese letzte Antwort ... missverstanden. ein Versatz von Fensterbreite haben Sie diese und versucht, das Hinzufügen

function polygonCenter(poly) { 
    var lowx, 
     highx, 
     lowy, 
     highy, 
     lats = [], 
     lngs = [], 
     vertices = poly.getPath(); 

    for(var i=0; i<vertices.length; i++) { 
     lngs.push(vertices.getAt(i).lng()); 
     lats.push(vertices.getAt(i).lat()); 
    } 

    lats.sort(); 
    lngs.sort(); 
    lowx = lats[0]; 
    highx = lats[vertices.length - 1]; 
    lowy = lngs[0]; 
    highy = lngs[vertices.length - 1]; 
    center_x = lowx + ((highx-lowx)/2); 
    center_y = lowy + ((highy - lowy)/2); 
    return (new google.maps.LatLng(center_x, center_y)); 
    } 

Auch für absolute Positionierung, nachdem es, dass ich immer noch nicht ganz sicher ein guter Ausgangspunkt sein könnte tho

Edit: gefunden auf diesen Link hier auf Stack sollte eigentlich funktionieren, ohne Ihre Einrichtung zu kennen how-do-i-get-google-maps-to-show-a-whole-polygon

+0

Ich denke, ich werde nur anfangen, indem ich die Karte nach rechts verschiebe, indem ich N von den Breitenkoordinaten subtrahiere. Ich berechne N, indem ich eine Formel erstelle, die das Verhältnis von Pixeln zu Breitengraden bestimmt. Dann werde ich wahrscheinlich eine neue Instanz eines Polygons auf ähnliche Weise auf der Karte platzieren. Sollte arbeiten. Ich wollte nur sehen, ob es einen Weg gibt, die Arbeit zu reduzieren. – gatekeeper01

Verwandte Themen