2016-03-25 22 views
1

Bazı şekil dosyalarını Neo4j 2.3.1'e aktarabilirim. Şimdi bu verileri bir harita üzerinde nasıl görüntüleyebilirim?Neo4j-Spatial veritabanını bir haritada görselleştirin

Geoserver ve uDig'deki Wiki yönergelerini denedim, ancak her ikisi de güncelliğini yitirdi ve çalışamadım.

Bu sorunu çözebilecek herhangi bir yeni eğitim veya başka araç var mı?

cevap

0

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.

+0

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? –