我正在尝试将传单映射添加到我的网页,我正在使用Mapbox磁贴.我无法让基本教程中的地图工作,我所看到的只是一个灰色屏幕.我有一个来自mapbox的mp id,我已将它添加到我的代码中.附上以下相关代码.
var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://{s}.tiles.mapbox.com/v3/rakshak.l937n12c/{z}/{x}/{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)
这就是我在控制台中看到的:
GET http://a.tiles.mapbox.com/v4/rakshak.l937n12c/13/4093/2723.png 401 (Unauthorized)
Run Code Online (Sandbox Code Playgroud)
在css我刚刚将地图高度设置为高度:100vh.
我在屏幕上看到的只有地图变焦控制器和灰色屏幕.我错过了一个重要的步骤吗?
编辑1:更新JS代码:
var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('http://api.tiles.mapbox.com/v4/rakshak.l937n12c/{z}/{x}/{y}.{format}?access_token=pk.eyJ1IjoicmFrc2hhayIsImEiOiJ5cHhqeHlRIn0.Vi87VjI1cKbl1lhOn95Lpw', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://mapbox.com">Mapbox</a>',
maxZoom: 18
}).addTo(map);
Run Code Online (Sandbox Code Playgroud) 我试图让我的Xamarin应用程序中的MapBox组件工作.
起初我只是在我的Android项目的引用中引用了一个mapbox.dll.使用该方法,当试图给包含mapbox的布局充气时,应用程序会崩溃.
我取消引用mapbox.dll并将mapbox组件添加到我的Android项目中,希望它能解决我的问题.但是,在编译时我现在收到此错误:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: Error: java.lang.IllegalArgumentException: already added : Lokio/AsyncTimeout; (IM.Droid)
Run Code Online (Sandbox Code Playgroud)
我已取消引用以前的mapbox.dll,删除它,清理,删除所有obj和bin目录...仍然得到相同的错误.
任何帮助,将不胜感激.
我想要做的很简单; 使用我的PHP代码从Mysql表中获取marker的数据,将其转换为geoJson(由MapBox使用),将geoJson发送到javascript,然后将这些标记填充到我的地图中.
我一直在仔细阅读以下两个链接,显然包含了我需要解决的所有信息,但我不确定我缺少什么.
在这里,您可以看到如何从MapBox中的geoJson填充标记的示例;
在这里,您可以看到如何从MySql表创建geoJson;
我的sql表看起来像这样,这里是创建代码加上一些虚拟数据;
-- phpMyAdmin SQL Dump
-- version 4.0.4.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 21, 2013 at 03:26 PM
-- Server version: 5.5.32-cll-lve
-- PHP Version: 5.5.0
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
--
-- Database: `pgmq`
--
-- --------------------------------------------------------
--
-- Table structure for table `mapa`
--
CREATE TABLE IF NOT EXISTS `mapa` (
`contrato` int(11) NOT NULL,
`name` varchar(60) NOT NULL,
`address` varchar(80) NOT NULL, …Run Code Online (Sandbox Code Playgroud) 在这里,我的javascript代码在地图中以及该地图的fitBounds之后渲染标记.
地图边界根据geojson得到拟合,但问题是当地图上有任何标记并且我尝试拟合边界时,地图图块图像不会得到渲染.
在地图中,它只显示标记,没有平铺图像.
var latLongCollection = [];
var map;
$(document).ready(function() {
map();
});
function map() {
map = L.mapbox.map('DivId', 'ProjectId');
GetData();
}
function GetData() {
$.ajax({
type: "GET",
url: someUrl,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: AjaxSuccess,
error: function () {
}
});
}
function AjaxSuccess(data) {
if (data == null || data.length == 0) {
return;
}
var geoJson = {
"type": "FeatureCollection",
"features": []
};
$.each(data, function (index, value) {
var latitude = parseFloat(value.Latitude),
longitude = parseFloat(value.Longitude);
if …Run Code Online (Sandbox Code Playgroud) 我正在制作地图,我想在某个事件中删除地图上的所有功能.这些要素采用多层动态绘制.
一些代码是:
$.getJSON('distributor-companies', function (data) {
var layers = [];
$.each(data, function (i, item) {
if (item.geojson != '') {
layers[i] = L.mapbox.featureLayer().addTo(map);
$.getJSON('/geojson/' + item.geojson, function (data) {
layers[i].setGeoJSON(data);
// Loop over the added layer
layers[i].eachLayer(function (layer) {
// Add click event
layer.on('click', function (e) {
// Do stuff
map.fitBounds(layers[i].getBounds());
});
});
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
有没有办法在某个时间点获取地图上的所有图层并将其删除.
我正在尝试找到用户位置的纬度和经度,以便我可以在viewdidload中将地图置于用户的中心位置.
我已经实现了似乎是正确的代码,但userLat(纬度)和userLon(经度)的值是关闭的.
NB有人和我有同样的问题,但他的答案从未得到解决: Mapbox iOS8 Swift mapView.showUsersLocation
import Mapbox
class ViewController: UIViewController, MGLMapViewDelegate, CLLocationManagerDelegate {
// let locationManager = CLLocationManager()
@IBOutlet weak var mapView: MGLMapView!
override func viewDidLoad() {
super.viewDidLoad()
// Initalise map's center coordinate as vancouver
mapView.setCenterCoordinate(CLLocationCoordinate2D(latitude: 49.283382,
longitude: -123.117394),
zoomLevel: 15, animated: false)
view.addSubview(mapView)
// Set the delegate property of our map view to self after instantiating it.
mapView.delegate = self
// User location
mapView.showsUserLocation = true
let userLoc = mapView.userLocation!
userLoc.title = "Hello"
userLoc.subtitle = "I am …Run Code Online (Sandbox Code Playgroud) 我正在使用MapBox显示特定区域的自定义地图.在MapBox中:我的特定区域是黄色,地图的其余部分是透明的(参见下图).
我想要实现的目标: 我想将MapControl放在背景图像上.因此,当地图的瓷砖是透明的时,我可以看到背景图像.
我遇到的问题:在我的UWP应用程序中,地图的特定区域显示正确(黄色),但地图的其余部分为黑色,因此背景图像被地图隐藏.
MapBox没有问题,因为生成的图块是透明的.我认为问题出在我的应用程序中.
我试图将MapControl的背景设置为Transparent而没有成功.
XAML
<Image x:Name="background"
Stretch="UniformToFill"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"/>
<maps:MapControl x:Name="MyMap"
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
MapServiceToken="TOKEN"/>
Run Code Online (Sandbox Code Playgroud)
C#
HttpMapTileDataSource leaflet = new HttpMapTileDataSource(
"URL_TO_MAPBOX_API");
MapTileSource mts = new MapTileSource(leaflet);
mts.IsTransparencyEnabled = true;
mts.AllowOverstretch = true;
mts.IsFadingEnabled = false;
this.MyMap.TileSources.Add(mts);
this.MyMap.Style = MapStyle.None;
Run Code Online (Sandbox Code Playgroud)
我做错了什么或者根本不可能?
谢谢你的帮助
我正在尝试在Mapbox for iOS中实现群集,并使用Mapbox网站中的这个示例
它工作正常,但我希望能够使用简单的MGLAnnotations放置在地图上,如果它们太近,就将它们聚集在一起.
我在这里读到MGLShapeSource不仅接受外部geoJSON,还接受其他来源,例如折线和注释.但是当我用注释数组提供它时,没有发生聚类,我只是看到我的注释数组中的一堆标记:
let source = MGLShapeSource(identifier: "clusteredParkings", shapes: annotationsArray, options: [.clustered: true, .clusterRadius: 20])
当我将源交换回geoJSON时,一切都可以用于集群.顺便说一句,没有错误或警告.
我究竟做错了什么?有没有人有一个使用MGLAnnotations而不是geoJSON源文件的Mapbox集群的工作示例?
https://www.mapbox.com/ios-sdk/api/3.6.0/Classes/MGLShapeSource.html
我在我的Angular 2/4应用程序中导入模块,如下所示:
import { MapboxDraw } from '@mapbox/mapbox-gl-draw/dist/mapbox-gl-draw';
Run Code Online (Sandbox Code Playgroud)
并在其中一个组件中使用它:
var draw = new MapboxDraw({
displayControlsDefault: false,
controls: {
polygon: true,
trash: true
}
});
map.addControl(draw);
Run Code Online (Sandbox Code Playgroud)
但是当我打开页面时收到错误:
ERROR TypeError: __WEBPACK_IMPORTED_MODULE_4__mapbox_mapbox_gl_draw_dist_mapbox_gl_draw__.MapboxDraw is not a constructor
Run Code Online (Sandbox Code Playgroud)
导入mapbox-gl-draw的最佳方法是什么?
mapbox ×10
leaflet ×3
android ×2
ios ×2
angular ×1
c# ×1
dictionary ×1
geojson ×1
javascript ×1
jquery ×1
mapbox-gl-js ×1
mysql ×1
php ×1
swift ×1
userlocation ×1
uwp ×1
xamarin ×1
xaml ×1
xbuild ×1