zuweisbar. In d3.geo API 3 hat es die Funktion, die Geo-Koordinaten auf die Karte zu projizieren.GeoStream ist nicht dem Parameter vom Typ 'GeoRawProjection' in d3 API Version 4
zum Beispiel der Code in der Version 3 ist wie
var transform = d3.geo.transform({point: self.projectPoint});
self._path = d3.geo.path().projection(transform);
projectPoint: function(x, y) {
var point = MELBPARKING.Map.map.latLngToLayerPoint(new L.LatLng(y, x));
this.stream.point(point.x, point.y);
}
Jetzt habe ich den angular2 Rahmen verwenden die Broschüre Karte zu bauen, um die Koordinaten in D3.js zu projizieren, die D3.js ‚s API gebaut auf the version 4. Ich schaute in den D3.js ‚s-Bibliothek, die Geotransformation und geoProjection exportieren
export {default as geoTransform} from "./src/transform";
export {default as geoProjection, projectionMutator as geoProjectionMutator} from "./src/projection/index";
In meinem angular2 Projekt verwenden ich d3.js und leaflet.js eine Broschüre Kartenkomponente zu bauen, wie unten gezeigt
import * as L from 'leaflet';
import * as d3 from 'd3';
import {geoTransform,geoProjection} from "d3-geo";
export class MapsComponent implements OnInit {
map;
_path ;
ngOnInit(){
console.log('init map');
this.map = L.map('mapid', {
center: L.latLng(38, 15),
zoom: 5,
});
this.map.setView(L.latLng(-37.81108500, 144.96269970), 18);
var self = this;
var transform = geoTransform({point: self.projectPoint})
console.log(transform);
self._path = geoProjection(transform);
}
projectPoint(x, y) {
var point = this.map.latLngToLayerPoint(new L.LatLng(y,x));
this.map.stream.point(point.x, point.y);
}
}
jedoch das Projekt
ERROR in /maps.component.ts (87,32): Argument of type '{ stream(s:
GeoStream): { point: (x: any, y: any) => void; } & GeoStream; }' is not
assignable to parameter of type 'GeoRawProjection'.
Type '{ stream(s: GeoStream): { point: (x: any, y: any) => void; } &
GeoStream; }' provides no match for the signature '(lambda: number, phi:
number): [number, number]'.
was falsch ist