使用geoJson绘制特定形状

时间:2014-11-02 23:03:54

标签: javascript jquery geojson shapefile qgis

我试图在浏览器上使用geoJSON绘制建筑物建筑形状

故事是:我想通过(udig或qgis)制作shapefile并将shapefile转换为geoJSON,然后通过shapefile在浏览器上创建形状。 我准备好了可以制作shapefile并将其转换为geoJSON

我已经搜索过所有内容但只找到3个用于geoJSON的库(openlayer / Leaflet / Mapbox)。 这些都是好的和有用的,但唯一的是他们都需要加载世界地图,我不想加载。 我无法配置这些库来构建我的自定义地图。

1 个答案:

答案 0 :(得分:0)

我找到了Leaflet库的解决方案
这是示例代码

// a GeoJSON multipolygon
var mp = {
  "type": "Feature",
  "geometry": {
    "type": "MultiPolygon",
    "coordinates": [
        [
          [
            [101.2, 1.2], [101.8, 1.2], [101.8, 1.8], [101.2, 1.8], [101.2, 1.2]
          ],
          [
            [101.2, 1.2], [101.3, 1.2], [101.3, 1.3], [101.2, 1.3], [101.2, 1.2]
          ],
          [
            [101.6, 1.4], [101.7, 1.4], [101.7, 1.5], [101.6, 1.5], [101.6, 1.4]
          ],
          [
            [101.5, 1.6], [101.6, 1.6], [101.6, 1.7], [101.5, 1.7], [101.5, 1.6]
          ]
        ],
        [
          [
            [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]
          ],
          [
            [100.35, 0.35], [100.65, 0.35], [100.65, 0.65], [100.35, 0.65], [100.35, 0.35]
          ]
        ]
      ]
  },
  "properties": {
    "name": "MultiPolygon",
    "style": {
        color: "black",
        opacity: 1,
        fillColor: "white",
        fillOpacity: 1
    }
  }
};

// create a map in the "map" div, set the view to a given place and zoom
var map = L.map('map', {
  center: [0.8, 100.9],
  zoom: 8
});
new L.GeoJSON(mp, {
  style: function(feature) {
      return feature.properties.style
  }
}).addTo(map);

和html

<div id="map" style="height:480px; width:360px;"></div>

别忘了加载Leaflet需要文件