c#, Wie die Konvertierung von Längen-und Breitengrad zur xy-Ebene vergrößert anzeigen

Ich habe eine Karte, die nicht GOOGLE-Karte in ein picturebox-Steuerelement. Ich kenne die Breite und Höhe der Karte. Und ich weiß, dass Breite und Länge der Kanten der Karte Bild. Das map-Bild zeigt nur den kleinen Bereich(einige Gebäude und Straßen) nicht die ganze WELT. Was ich will zu tun ist, um die xy-Koordinaten der Karte Bild, wenn ich lat&lon von einem Punkt. Der Punkt wird nicht aus der Karte Bild.

Kurz gesagt, die Hauptaufgabe wäre die Konvertierung von lat / lon zu xy-Koordinaten, wenn ich weiß, die Kanten'lat&lon.

1 Antworten

  • RajmondX
    4. Mai 2019
    // The mapping between latitude, longitude and pixels is defined by the web
    // mercator projection.
    function project(latLng) {
       var siny = Math.sin(latLng.lat() * Math.PI / 180);
    
       // Truncating to 0.9999 effectively limits latitude to 89.189. This is
       // about a third of a tile past the edge of the world tile.
       siny = Math.min(Math.max(siny, -0.9999), 0.9999);
    
       return new google.maps.Point(
          TILE_SIZE * (0.5 + latLng.lng() / 360),
          TILE_SIZE * (0.5 - Math.log((1 + siny) / (1 - siny)) / (4 * Math.PI)));
    }
    

    aus https://developers.google.com/maps/documentation/javascript/examples/map-coordinates?csw=1