我正在使用 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) 我有一张带有 的传单地图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/
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\nI want to get the closest elements from my DB using Mongo custom query tools like $near.
\n\nYou can find the original repo here!
\n\nThe original data is a little .csv that I converted to geojson format.
\n\nHere is a short version of that .csv:
\n\n …我访问了如何从 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) 我有一个项目需要确定某个位置(纬度和经度)的描笼涯(barrio/细分)。有没有我可以使用的 API?
在菲律宾,地址必须包含描笼涯。地址的示例格式如下[House No.][Street][Barangay][City][Region]。我尝试在 Google Maps API 和 LocationIQ API 中搜索,但响应不包括描笼涯。
我正在尝试解析 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) 我想在视图中使用 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) 是否可以使 Mapbox 上的默认 POI 标记可操作/可点击?
不是作为图层包含的自定义 POI 标记,而是每个地图中包含的默认 POI 标记?
在下面的屏幕截图中,您可以看到蓝色和棕色的默认 POI 标记:
Central Station,Campbria Hotel,Homewood Suites,Minute Maid Park, ETC。
这些 POI 标记会在缩放时显示,并且不会作为单独的图层添加。我想让它们变得可行。
理想的行为是弹出地图,其中包含相关的 OSM POI 信息,例如 Google 地图。但即使直接链接到 OSM 位置也是可以接受的。
例如,如果用户单击Minute Maid Park下面的 POI 图标,是否可以将用户重定向到关联的 OSM 位置?(https://www.openstreetmap.org/way/129025430)
我可以通过 GeoJSON 源/图层使用自定义标记来执行此操作,但我想访问所有默认 POI 标记,而不是一小部分自定义标记。
我有来自开放数据 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) 我有一组 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 ×10
javascript ×2
leaflet ×2
mapbox-gl-js ×2
postgis ×2
django ×1
geolocation ×1
geometry ×1
google-maps ×1
h3 ×1
json ×1
mapbox ×1
mapbox-gl ×1
mongodb ×1
mongoose ×1
node.js ×1
openlayers ×1
postgresql ×1