Haritadaki geometrileri görselleştirmek için neo4j-spatial'i Mapbox.js ile kullandım. Benim kullanım durumunda İçin
Ben WKT dize ve sonuçları da dahil olmak üzere en yakın ilçe dönen, Neo4j-uzamsal sonra kullanıcı harita üzerinde tıkladığında yere göre kayma dizin sorgulamak ABD Kongre bölge geometri endeksli bir Cypher sorgusu. WKT poligonunu haritaya yerleştirmek için, bir harita notu eklemek için bir dizi noktaya ayrıştırmak için basit bir javascript işlevi yazdım.
haritası oluşturma ve harita için bir tıklama işleyicisi tanımlamak: Burada
ilgili bazı kod parçacıkları şunlardır
L.mapbox.accessToken = MB_API_TOKEN;
var map = L.mapbox.map('map', 'mapbox.streets')
.setView([39.8282, -98.5795], 5);
map.on('click', function(e) {
clearMap(map);
getClosestDistrict(e);
});
Kol fare tıklayın
/**
* Find the District for a given latlng.
* Find the representative, commitees and subjects for that rep.
*/
function infoDistrictWithinDistance(latlng, distance) {
var districtParams = {
"layer": "geom",
"pointX": latlng.lng,
"pointY": latlng.lat,
"distanceInKm": distance
};
var districtURL = baseURI + findGeometriesPath;
makePOSTRequest(districtURL, districtParams, function (error, data) {
if (error) {
console.log("Error");
} else {
console.log(data);
var params = {
"state": data[0]["data"]["state"],
"district": data[0]["data"]["district"]
};
var points = parseWKTPolygon(data[0]["data"]["wkt"]);
makeCypherRequest([{"statement": subjectsQuery, "parameters": params}], function (error, data) {
if (error) {
console.log("Error");
} else {
console.log(data);
var districtInfo = data["results"][0]["data"][0]["row"][0];
districtInfo["points"] = points;
districtInfo["state"] = params["state"];
districtInfo["district"] = params["district"];
console.log(districtInfo);
addDistrictToMap(districtInfo, latlng);
}
});
}
});
Ayrıştırma WKT bir dizi noktaya
/**
* Converts Polygon WKT string to an array of [x,y] points
*/
function parseWKTPolygon(wkt) {
var pointArr = [];
var points = wkt.slice(10, -3).split(",");
$.each(points, function(i,v) {
var point = $.trim(v).split(" ");
var xy = [Number(point[1]), Number(point[0])];
pointArr.push(xy)
});
return pointArr;
}
Kod this repo'dadır. Basit harita tanıtımını here görebilirsiniz (başlamak için ABD'de herhangi bir yere tıklamanız yeterlidir). Bu örnekle ilgili here ile ilgili güncel bir blog yayını da vardır.
Teşekkür ederiz! Aradığım şey bu. Neo4j'e benzer şekilde veri eklediğinizi görüyorum. İçe aktarma/ekleme düğümleriniz komut dosyasını katmanlaştırmaya gerçekten mu çalışıyor yoksa sadece ben mi? –