geoJson映射与散景,错误的轴

时间:2016-08-26 08:14:16

标签: python openstreetmap geojson bokeh

我想映射一些以geoJson格式存储的位置。问题是地图轴(x和y)从-2e7到2e7而不是-180到180(longtidue -x axis-)和-90到90(对于纬度-y轴 - )。然后,当我想要映射我的位置{"longitude": 48.90314,"latitude":20.70890}时,我必须写{"longitude": 4890314,"latitude":2070890}否则它在地图中的位置错误。

有谁知道为什么会这样或我做错了什么?

这是我的python脚本:

    from bokeh.io import output_file, show
    from bokeh.models import GeoJSONDataSource, HoverTool
    from bokeh.plotting import figure
    from bokeh.tile_providers import CARTODBPOSITRON
    import json

    geo_source = GeoJSONDataSource(geojson=json.dumps(geoJson_file))
    p = figure()
    p.add_tile(CARTODBPOSITRON)

    p.circle(x='x', y='y', alpha=0.9, size=10, source=geo_source)

    p.add_tools(HoverTool(tooltips=[
        ("name", "@name"),
        ("(Long, Lat)", "(@x, @y)"),
    ]))
    output_file("geojson.html")
    show(p)

这是我要映射的geoJson文件(py脚本中的geoJson_file):

{
    "type": "FeatureCollection", 
    "features": [
        {
            "geometry": {
                "type": "Point", 
                "coordinates": [
                    48.90314, 
                    20.70890
                ]
            }, 
            "type": "Feature", 
            "properties": {
                "name": "marker_1"
            }
        }, 
        {
            "geometry": {
                "type": "Point", 
                "coordinates": [
                   -94.91849,
           58.60959
                ]
            }, 
            "type": "Feature", 
            "properties": {
                "name": "marker_2"
            }
        }, 
        {
            "geometry": {
                "type": "Point", 
                "coordinates": [
                    81.03195, 
                    38.94440
                ]
            }, 
            "type": "Feature", 
            "properties": {
                "name": "marker_3"
            }
        }
    ]
}

这是我得到的地图(但你可以看到lon / lat不应该是它应该是因为我必须修改geoJson文件中的lon / lat数字(48.90314到4890314和20.70890到2070890)否则它没有正确地位于地图中{} 3}}

0 个答案:

没有答案