【发布时间】:2014-12-03 18:01:44
【问题描述】:
与我的 geoJson 关联的标记没有填充在我的地图上。如果我在 http://geojsonlint.com/ 上运行我的 geoJSON,一切正常。如果我用来自 google maps dev api 'https://storage.googleapis.com/maps-devrel/google.json' 的示例交换我的 geoJSON,他们的叠加层会很好地填充在我的地图上。
下面我正在运行 http://localhost:3009/murals.json 作为 loadGeoJson 的参数我还尝试从本地文件运行 test.json。
我的地图.js
function initialize() {
var myLatlng = new google.maps.LatLng(40.0172679,-105.2839094);
var myOptions = {
zoom: 16,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(
document.getElementById('map'), myOptions
);
map.data.loadGeoJson('http://localhost:3009/murals.json');
};
google.maps.event.addDomListener(window, "load", initialize());
我的控制器(毫无疑问可以重构,但输出格式正确的 geoJSON)
def index
@murals = Mural.all
muralHash = []
@geojson = { type: "GeometryCollection",
geometries: muralHash
}
@murals.each do |mural, myHash = {:type => nil,:coordinates => nil}|
myHash["type"] = 'Point'
myHash["coordinates"] = [mural.longitude, mural.latitude]
muralHash << myHash
end
respond_to do |format|
format.html
format.json { render json: @geojson }
end
end
geoJSON
{ "type":"GeometryCollection",
"geometries":[
{
"type":"Point",
"coordinates":[-105.287685950293,40.0124034482671]
},
{
"type":"Point",
"coordinates":[-105.196297724738,39.9935339839196]
},
{
"type":"Point",
"coordinates":[-105.283136923804,40.0162490232761]
}
]
}
【问题讨论】:
-
请发布 JSON
标签: javascript ruby-on-rails json google-maps