标签: geojson

我无法在 MultiLineString 中使用 feature.get Geometry ()

我正在使用 google 地图 api v3 在地图上绘制 GeoJSON。有了层点,它就可以正常运行了。但我有一个 MultiLineString Camda 并将地图置于几何图形的中心会出现错误。多边形也会发生这种情况,但对于点效果很好。还有其他方法可以集中到 MultiLineString 和 Polygons 吗?

  google.maps.event.addListener(cicloviasLayer, 'addfeature', function (e) {
     console.log(e.feature.getGeometry().getType()); // MultiLineString Ok!
     map.setCenter(e.feature.getGeometry().get());

  });  
Run Code Online (Sandbox Code Playgroud)

错误:

e.feature.getGeometry(...).get is not a function
Run Code Online (Sandbox Code Playgroud)

google-maps geojson

2
推荐指数
1
解决办法
4663
查看次数

Leaflet:在光标位置而不是 LineString 中心打开弹出窗口

我有一张带有 的传单地图LineString

// a GeoJSON LineString
var geojson = {
  "type": "Feature",
  "geometry": {
    "type": "LineString",
    "coordinates": [[-101.123, 40.2500], [-101.123, 40.2503]]
  }
};

// create map and add json
var map = L.map('map');
var geojsonLayer = new L.GeoJSON(geojson).addTo(map);
map.fitBounds(geojsonLayer.getBounds())

// add popup for the line
geojsonLayer.eachLayer(function (layer) {
  var popup = L.popup();
  popup.setContent('text');

  layer.bindPopup(popup);
  layer.on('click mouseover', function () {
    layer.openPopup();
  });
});
Run Code Online (Sandbox Code Playgroud)

当我越过它时,LineString 中心会打开一个弹出窗口。

如何让它在光标位置打开?

这是一个简单的工作示例:http ://jsfiddle.net/wuu8Lv2t/1/

javascript geojson leaflet

2
推荐指数
1
解决办法
6548
查看次数

$near error - planner returned error: unable to find index for $geoNear query

I am having great trouble with this. I am building a little API to get the closest stored elements (in a mlab MongoDB) given specific coordinates.

\n\n

I want to get the closest elements from my DB using Mongo custom query tools like $near.

\n\n

You can find the original repo here!

\n\n

The Data

\n\n

The original data is a little .csv that I converted to geojson format.

\n\n

Here is a short version of that .csv:

\n\n …

geolocation mongoose mongodb geojson node.js

2
推荐指数
1
解决办法
7640
查看次数

将 PostGIS 表 (postgresql) 转换为 GeoJSON

我访问了如何从 PostgreSQL 转换为 GeoJSON 格式中显示的问题

此 PostGIS SQL 将整个表转换为 GeoJSON 结果:

SELECT row_to_json(fc) AS geojson FROM 
(SELECT 'FeatureCollection' As type, array_to_json(array_agg(f))
As features FROM 
(SELECT 
'Feature' As type, 
ST_AsGeoJSON((lg.geometry),15,0)::json As geometry,
row_to_json((id, name)) As properties
FROM imposm3_restaurants As lg) As f ) As fc;
Run Code Online (Sandbox Code Playgroud)

我发现在结果中,我们没有得到字段的名称。

我希望输出为 "properties":{"id":6323,"name":"Restaurant Sinaia"

但实际输出是 "properties":{"f1":6323,"f2":"Restaurant Sinaia"

我阅读了row_to_json指令的规范,所以我决定改变最后的row_to_json指令

SELECT row_to_json(fc) AS geojson FROM 
(SELECT 'FeatureCollection' As type, array_to_json(array_agg(f))
As features FROM 
(SELECT 
'Feature' As type, 
ST_AsGeoJSON((lg.geometry),15,0)::json As geometry,
row_to_json((lg)) As properties
FROM imposm3_restaurants …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis geojson

2
推荐指数
1
解决办法
2080
查看次数

确定某个位置的描笼涯

我有一个项目需要确定某个位置(纬度和经度)的描笼涯(barrio/细分)。有没有我可以使用的 API?

在菲律宾,地址必须包含描笼涯。地址的示例格式如下[House No.][Street][Barangay][City][Region]。我尝试在 Google Maps API 和 LocationIQ API 中搜索,但响应不包括描笼涯。

geojson reverse-geocoding

2
推荐指数
1
解决办法
2464
查看次数

Openlayers:GeoJSON 和坐标

我正在尝试解析 GeoJSON 数据并在 ESPG:4326 地图上绘制“点”,并取得了一些成功。它在地图上绘制“点”,但使用默认设置 [0, 0]。我是 Openlayers 的新手。我还让我的 geojson 通过了两个验证器,结果没有错误。我下面的代码是一个 .js 文件。

我之前在更改地图的“中心”时遇到过类似的问题,我使用“fromLonLat”来解决该问题。我假设有某种涉及“fromLonLat”的解决方案,但我在 Openlayers 6 上的任何地方都找不到与此相关的任何内容。

import Feature from 'ol/Feature';
import Map from 'ol/Map';
import View from 'ol/View';
import GeoJSON from 'ol/format/GeoJSON';
import Point from 'ol/geom/Point';
import {fromLonLat} from 'ol/proj';
import {defaults as defaultInteractions, DragRotateAndZoom} from 'ol/interactio$
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
import {OSM, Vector as VectorSource} from 'ol/source';
import {Circle as CircleStyle, Fill, Stroke, Style} from 'ol/style';

var image = new CircleStyle({
  fill: new …
Run Code Online (Sandbox Code Playgroud)

javascript openlayers geojson

2
推荐指数
1
解决办法
1750
查看次数

如何使用视图从 PostGIS 中提取几何图形,然后使用 Django 将其添加到模板中的传单地图中

我想在视图中使用 python 从 PostGIS 数据库中提取多边形几何数据,并将其添加到模板中的传单地图中。最简单的方法似乎是提取数据并使用 Django 视图中的 postgis 函数 ST_AsGeoJSON 将其转换为 GeoJSON,然后将其作为 L.geoJSON(GEOJSON).addTo(map) 函数中的上下文渲染到模板。

这是行不通的。在请求地图页面时,地图现在是空白的,并且似乎无法识别 GeoJSON。我已经能够从视图传递硬编码的多边形并将其添加到地图中,但我的 postgis 数据库中的几何数据根本无效。

这是一个带有硬编码多边形的视图,已成功打印在地图上:

from django.shortcuts import render

def map_view(request, *args, **kwargs):
    geo_json={
        "type": "FeatureCollection",
          "features": [
            {
              "type": "Feature",
              "properties": {},
              "geometry": {
                "type": "Polygon",
                "coordinates": [
                  [
                    [
                      -0.10746002197265625,
                      51.505537109466715
                    ],
                    [
                      -0.11466979980468751,
                      51.498377681772325
                    ],
                    [
                      -0.0968170166015625,
                      51.493568479510415
                    ],
                    [
                      -0.09080886840820312,
                      51.502438390761164
                    ],
                    [
                      -0.10746002197265625,
                      51.505537109466715
                    ]
                  ]
                ]
              }
            }
          ]
        }

    return render(request ,'map.html', {'geo_json': geo_json})

Run Code Online (Sandbox Code Playgroud)

地图模板如下所示:

<!DOCTYPE html>
<html>
<head> …
Run Code Online (Sandbox Code Playgroud)

django geometry postgis geojson leaflet

2
推荐指数
1
解决办法
5307
查看次数

如何启用默认 Mapbox POI 标记的点击?

是否可以使 Mapbox 上的默认 POI 标记可操作/可点击?

不是作为图层包含的自定义 POI 标记,而是每个地图中包含的默认 POI 标记?

在下面的屏幕截图中,您可以看到蓝色和棕色的默认 POI 标记:

Central StationCampbria HotelHomewood SuitesMinute Maid Park, ETC。

这些 POI 标记会在缩放时显示,并且不会作为单独的图层添加。我想让它们变得可行。

理想的行为是弹出地图,其中包含相关的 OSM POI 信息,例如 Google 地图。但即使直接链接到 OSM 位置也是可以接受的。

例如,如果用户单击Minute Maid Park下面的 POI 图标,是否可以将用户重定向到关联的 OSM 位置?(https://www.openstreetmap.org/way/129025430

我可以通过 GeoJSON 源/图层使用自定义标记来执行此操作,但我想访问所有默认 POI 标记,而不是一小部分自定义标记。

默认 MapBox POI

geojson mapbox mapbox-gl mapbox-gl-js mapbox-marker

2
推荐指数
1
解决办法
1402
查看次数

将 JSON 转换为 GeoJSON 前端

我有来自开放数据 API 的 json,我需要将其转换为 geojson,以便它可以在我的 Mapbox 地图上显示为图层。我正在使用 Mapbox GL JS 库:https://docs.mapbox.com/mapbox-gl-js/api/。以下是开放数据 json api 的链接: https: //data.cityofnewyork.us/resource/64uk-42ks.json

我可以成功获取 json api 并将其打印到控制台,但现在我需要将其转换为 geojson。我知道我可以完全在前端完成此操作,因为它是开放数据。

这是我的代码:

var map = new mapboxgl.Map({
  container: 'map',
  style: 'mapbox://styles/niki12step/ck8q9fgpx00d91ipipual7mrl', // replace this with your style URL
  center: [-73.961581,40.683868],
  zoom: 9.5
})

var pluto_url = 'https://data.cityofnewyork.us/resource/64uk-42ks.json'

getData();

async function getData () {
   await fetch(pluto_url)
  .then(response => response.json())
  .then(data => console.log(data))
}
Run Code Online (Sandbox Code Playgroud)

json geojson mapbox-gl-js

2
推荐指数
1
解决办法
2860
查看次数

如何在 H3 中填充多重多边形?

我有一组 GeoJSON 格式的多边形,例如:

{ 
  "type": "MultiPolygon",
  "coordinates": [
    [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],
    [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],
     [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用polyfill_geojsonH3 库中的方法来获取其中的六边形。但这个方法似乎只支持多边形而不支持多重多边形:

>>> h3.polyfill_geojson(geojson, 8)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "python3.7/site-packages/h3/api/_api_template.py", line 486, in polyfill_geojson
    mv = _cy.polyfill_geojson(geojson, res)
  File "geo.pyx", line 186, in h3._cy.geo.polyfill_geojson
ValueError: Only Polygon GeoJSON supported
Run Code Online (Sandbox Code Playgroud)

如何从 …

geojson h3

2
推荐指数
1
解决办法
5122
查看次数