Quick-Version: Ich habe Probleme beim Anzeigen eines d3-Elements auf einem statischen Bild von Leaflet angezeigt. Es funktioniert, wenn ich d3noobs (http://bl.ocks.org/d3noob/9211665) Beispiel verwende ... aber ich habe Probleme, es zu erweitern. Ich schätze, es liegt an der langen und langen Übersetzung oder der Projektion, aber ich bin mir nicht sicher, was ich ändern muss. Ich versuche, die GeoJSON in der Mitte des Bildes (mein Code auf JSFiddle: https://jsfiddle.net/g_at_work/qyhf0qz0/12/) anzuzeigenRendern von geoJSON mit D3 und Leaflet mit imageOverlay
Längere Version: Ich versuche d3noob Beispiel zu erweitern, so dass ich GeoJSON auf statische Bilder angezeigt werden können unter Verwendung von Flugblatt und D3 (eine Anforderung von meinem Chef leider). Ich konnte d3noobs Kachel-basiertes Beispiel reproduzieren, aber ich hatte Probleme mit der statischen Version.
Ich konnte das statische Bild anzeigen, aber ich konnte das blaue Rechteck auf dem Bild nicht anzeigen. Ich bin nicht sicher, was ich tun muss, um die Position des in JSON beschriebenen blauen Rechtecks zu manipulieren.
Ich habe versucht, das Spiel mit den Koordinaten in der Project Funktion Einstellung aber kein Glück:
function projectPoint(x, y) {
var point = map.latLngToLayerPoint(new L.LatLng(y, x));
this.stream.point(point.x, point.y);
}
In diesem Stadium muss ich denke, ich eine neue Projektion beschreiben, aber ich bin nicht sicher, was . Hier ist der Code, den ich das statische Bild anzuzeigen bin mit:
var map = new L.Map("map", {maxZoom:1,center: [0,0], zoom: 3,crs:L.CRS.Simple});
var southWest = map.unproject([0,882],map.getMaxZoom());
var northEast = map.unproject([1085,0],map.getMaxZoom());
var imageBounds = new L.LatLngBounds(southWest,northEast);
L.imageOverlay('http://www.w3schools.com/css/trolltunga.jpg',imageBounds).addTo(map);
map.fitBounds(imageBounds);
Es wäre toll, wenn jemand eine Strategie für maniuplating die Position des Rechtecks vorschlagen könnte (I bis d3 und Faltblatt neu bin) Dank einem Haufen G