message: "Invalid GeoJSON"尝试将多边形添加到 Mapbox api 上的静态地图时, 我不断收到错误。
在下面的地图上:
我的 LineString 示例用于勾画我想要绘制的多边形的边框:
geojson({"type":"Feature","properties":{},"geometry":{"type":"LineString","coordinates":[[-120.8492,39.4916],[-120.8474,39.4896],[-120.8510,39.4864],[-120.8492,39.4916]]}})
Run Code Online (Sandbox Code Playgroud)
如果尝试使用以下 geojson 对象将其转换为多边形:
geojson({"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[-120.8492,39.4916],[-120.8474,39.4896],[-120.8510,39.4864],[-120.8492,39.4916]]}})
Run Code Online (Sandbox Code Playgroud)
它爆炸了:
有人能看到我做错了什么吗?我在查找使用静态 api 绘制多边形的任何示例时遇到问题,但静态 api 文档说这是可能的。
谢谢。
我正在寻找一个简单的导航应用程序,它总是根据用户的方向旋转。我已经看到了一些 Android 的答案,但还没有找到任何适用于 Swift 的东西。
我尝试了以下方法,但它对我不起作用,并且不确定这是否让我更接近我正在寻找的东西。
let newCam = MGLMapCamera()
newCam.heading = 90
mapView.setCamera(newCam, animated: true)
Run Code Online (Sandbox Code Playgroud)
我对 Xcode 和 Swift 还很陌生,理解起来有困难,所以请放轻松!
启动了 angular-cli 项目并通过 npm 安装了 mapbox-gl。在 angular-cli.json 文件中包含了 mapbox-gl 脚本和样式。我可以显示地图,但无法在加载事件上添加图层。地图突然不定义了?这是模板 html (app.component.html):
<div id="map" style="margin:0; padding:0; position:absolute; top:25px; bottom:0; width:100%;">
</div>Run Code Online (Sandbox Code Playgroud)
这是我的组件代码(app.component.ts):
import { Component, ViewChild, AfterViewInit, OnInit } from '@angular/core';
import * as mapboxgl from 'mapbox-gl';
import { Map } from 'mapbox-gl';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
@ViewChild("map") map: Map;
title = 'app';
ngOnInit() {
mapboxgl.accessToken = 'blah';
this.map = new Map({
container: 'map',
style: 'mapbox://styles/mapbox/light-v9',
zoom: 5,
center: [-78.880453, …Run Code Online (Sandbox Code Playgroud)我有一张包含几十层的地图,每层都有一个唯一的 ID。我有用于打开和关闭图层的复选框,为此我需要所有图层 ID 的单个数组。我不知道如何循环遍历所有地图图层来捕获图层 ID。我尝试使用map.getLayer(),但这将图层作为对象返回,而不是将图层 ID 作为字符串返回。我想循环遍历所有地图图层并将图层 ID 字符串推送到新数组。我该怎么做呢?
mapboxgl.accessToken = "myaccesstoken";
var map = new mapboxgl.Map({
container: "map",
style: "mapbox://styles/mymapboxstyle",
center: [-71.0664, 42.358],
minZoom: 14 //
});
map.on("style.load", function () {
map.addSource("contours", {
type: "vector",
url: "mapbox://mapbox.mapbox-terrain-v2"
});
map.addSource("hDistricts-2017", {
"type": "vector",
"url": "mapbox://mysource"
});
map.addLayer({
"id": "contours",
"type": "line",
"source": "contours",
"source-layer": "contour",
"layout": {
"visibility": "none",
"line-join": "round",
"line-cap": "round"
},
"paint": {
"line-color": "#877b59",
"line-width": 1
}
});
map.addLayer({
"id": "Back Bay Architectural District", …Run Code Online (Sandbox Code Playgroud) 我创建了一个带有几个标记的地图,并且能够对用户进行地理定位,该部分已经完成,但我似乎无法找到如何实际获得对用户进行地理定位的结果,我得到的只是切换它的按钮,但无论发生什么似乎都在 Mapbox 本身内部。关于如何将用户位置的结果保存到变量中的任何想法,以便我可以将其用作路线起点(使用 Mapbox Directions API)。此致
我试图弄清楚如何使动态生成的标记列表在地图上(而不是在信息窗口中)显示动态文本标签。我知道这是可能的,因为我已经在 Mapbox Studio 中使用过这个功能 - 我只是不知道如何在 Android 上做到这一点!我考虑过创建一个包含文本的静态位图图标,但这与 Mapbox Studio 版本相比似乎不太灵活,所以如果可以的话我想避免它!有什么建议么?
我已经阅读了很多 SO 问题和答案,并查看了 Mapbox 文档,但我看不到如何从纬度/经度点反向地理编码的简单示例。该示例仅显示用于进行查询的 URL,但大概有一种方法可以使用MapboxGeocoder对象来完成它?
那么,在这里,当用户单击地图时,我将使用什么来显示经纬度的反向地理编码?
var map = new mapboxgl.Map({
container: document.getElementsByClassName("js-map")[0],
center: [0, 51],
style: "mapbox://styles/mapbox/streets-v11",
zoom: 11
});
map.on("click", function(ev) {
// 1. Reverse geocode `ev.lngLat.lat` and `ev.lngLat.lng`
// 2. Do something with the result.
});
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,其中将多边形动态添加到 Mapbox 图层。我正在使用匹配表达式来设置多边形填充的样式,但是我在使用数组输入确定表达式的语法时遇到了问题。
这是我正在尝试做的一个快速示例:https : //stackblitz.com/edit/angular-bpuswd?file=src%2Fapp%2Fapp.component.ts
我有一个具有特征属性的图层states。根据数据驱动样式的官方地图框示例,我想将每个状态与不同的填充颜色相关联:
// want to match New York to color #F0F and Pennsylvania to color #FF0
const states = ['New York', 'Pennsylvania'];
const colors = ['#F0F', '#FF0'];
const statesAndColors = ['New York', '#F0F', 'Pennsylvania', '#FF0'];
this.map.addLayer({
id: 'states',
type: 'fill',
source: {
type: 'geojson',
data: POLYGONS,
},
paint: {
// doesn't work
'fill-color': ['match', ['string', ['get', 'state']], states, colors, '#AAAAAA']
// also doesn't work
// 'fill-color': ['match', ['string', ['get', 'state']], …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Mapbox Android 启用缩放控件,但都没有启用 XML
mapbox:mapbox_uiZoomControls="true"
Run Code Online (Sandbox Code Playgroud)
也不是 Kotlin/Java
mapboxMap.getUiSettings().setZoomControlsEnabled(true)
Run Code Online (Sandbox Code Playgroud)
适用于 SDK 8.6.1 - 两者似乎都已弃用。任何想法如何启用此控件以及它是否可用?
我正在尝试使用 React Mapbox,但在使用 Layer 组件时遇到了一些问题。
我正在尝试遵循此演示:https : //github.com/alex3165/react-mapbox-gl/blob/master/example/src/demos/heatmap.tsx
甚至主页上的“快速启动”演示:https : //github.com/alex3165/react-mapbox-gl
我的地图正在显示,但图层没有显示!这是我的代码:
import React, { useState } from "react";
import ReactMapboxGl, { Layer, Feature, ZoomControl, Marker } from "react-mapbox-gl";
import "mapbox-gl/dist/mapbox-gl.css";
const data = require("./heatmapData.json");
function LiveMap(props) {
const Map = ReactMapboxGl({
accessToken: "pk.ey",
});
const heatmapPaint = {
"heatmap-weight": {
property: "priceIndicator",
type: "exponential",
stops: [
[0, 0],
[5, 2],
],
},
// Increase the heatmap color weight weight by zoom level
// heatmap-ntensity is a multiplier …Run Code Online (Sandbox Code Playgroud) mapbox ×10
mapbox-gl-js ×5
mapbox-gl ×3
android ×2
javascript ×2
typescript ×2
angular ×1
api ×1
geolocation ×1
gps ×1
ios ×1
label ×1
mapkit ×1
react-map-gl ×1
reactjs ×1
routes ×1
swift ×1
xcode ×1