1
我已經能夠將一些shapefile導入到Neo4j 2.3.1。 現在我該如何在地圖上查看這些數據?在地圖中顯示Neo4j-Spatial數據庫
我已經嘗試了GeoServer和uDig上的Wiki說明,但他們都過時了,我無法讓它工作。
有沒有最近的教程或其他工具可以解決這個問題?
我已經能夠將一些shapefile導入到Neo4j 2.3.1。 現在我該如何在地圖上查看這些數據?在地圖中顯示Neo4j-Spatial數據庫
我已經嘗試了GeoServer和uDig上的Wiki說明,但他們都過時了,我無法讓它工作。
有沒有最近的教程或其他工具可以解決這個問題?
我已經使用neo4j-spatial與Mapbox.js來顯示地圖中的幾何圖形。
對於我的使用情況下,我收錄的美國國會選區的幾何形狀,Neo4j的空間然後查詢基於使用者點擊地圖上的空間索引,返回最接近的地區,包括WKT字符串的結果一個Cypher查詢。爲了在地圖中渲染WKT多邊形,我編寫了一個簡單的JavaScript函數,將其解析爲點數組以添加地圖註記。
這裏有一些相關的代碼片段:
創建地圖,並定義一個點擊處理程序映射:
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);
});
處理鼠標點擊
/**
* 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);
}
});
}
});
解析WKT進入點數
/**
* 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;
}
該代碼在this repo。您可以看到簡單的地圖演示here(只需點擊美國的任何地方即可開始使用)。最近還有一篇關於這個例子的博客文章here。
謝謝!這就是我一直在尋找的。我看到你以類似的方式向Neo4j添加數據。你的導入/添加節點的圖層腳本工作真的很慢,還是隻是我? –