Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在html中使用MapBox进行地理定位_Javascript_Html_Mapbox_Mapbox Gl Js - Fatal编程技术网

Javascript 在html中使用MapBox进行地理定位

Javascript 在html中使用MapBox进行地理定位,javascript,html,mapbox,mapbox-gl-js,Javascript,Html,Mapbox,Mapbox Gl Js,我想使用MapBox API在dynamics CRM上显示地址,I 我已经使用了谷歌API,它工作得很好,但现在我想用地图框来显示它 我已经看过Mapbox的正向地理定位功能,但还不清楚。 所以我的变量我的地址变量将来自一个字段。 e、 g var address=“加拿大安大略省渥太华市安大略大道6号K2E 8A2” 添加一个地理编码器 正文{margin:0;padding:0;} #映射{位置:绝对;顶部:0;底部:0;宽度:100%;} mapboxgl.accessToken='

我想使用MapBox API在dynamics CRM上显示地址,I 我已经使用了谷歌API,它工作得很好,但现在我想用地图框来显示它

我已经看过Mapbox的正向地理定位功能,但还不清楚。 所以我的变量我的地址变量将来自一个字段。 e、 g var address=“加拿大安大略省渥太华市安大略大道6号K2E 8A2”


添加一个地理编码器
正文{margin:0;padding:0;}
#映射{位置:绝对;顶部:0;底部:0;宽度:100%;}
mapboxgl.accessToken='pk.eyj1ijoibgf3axgxmcisimeijjamjloge1bmcyz2v5mzntcmlyawrzcdzlin0.ZRQ73zzVxwcADIPvsqB6mg';
var map=new mapboxgl.map({
容器:“映射”,
风格:'mapbox://styles/mapbox/streets-v9',
中间:[-79.4512,43.6568],
缩放:13
});
var address=“加拿大安大略省渥太华市安塔雷斯大道6号K2E 8A2”;
var geocoder=新的MapboxGeocoder({accessToken:mapboxgl.accessToken});
地理编码器。查询(地址);//如何搜索和显示此地址
地图添加控制(地理编码器);
//map.addControl(新的MapboxGeocoder({
//accessToken:mapboxgl.accessToken
//}));
是Mapbox GL JS的地理编码器控件,旨在提供用户界面,即在Mapbox地理编码API顶部搜索的输入搜索框


如果您已经有了查询,并且只想在地图上显示该位置,那么最好使用带有
geocodeForward
,请参阅。

控制台.Log非常有用,我发现data.features.center返回了我所需的坐标。完整代码如下


身体{
保证金:0;
填充:0;
}
#地图{
位置:绝对位置;
排名:0;
底部:0;
宽度:100%;
}
mapboxgl.accessToken='pk.eyj1ijoibgf3axgxmcisimeijjamjloge1bmcyz2v5mzntcmlyawrzcdzlin0.ZRQ73zzVxwcADIPvsqB6mg';
console.log(mapboxgl.accessToken);
var client=新的MapboxClient(mapboxgl.accessToken);
console.log(客户端);
变量地址='t5h 0k7'
var test=client.geocodeForward(地址、函数(err、data、res){
//数据是解析JSON的地理编码结果
//res是http响应,包括:状态、头和实体属性
控制台日志(res);
console.log(res.url);
控制台日志(数据);
变量坐标=数据。要素[0]。中心;
var map=new mapboxgl.map({
容器:“映射”,
风格:'mapbox://styles/mapbox/streets-v10',
中心:坐标,
缩放:14
});
新的mapboxgl.Marker()
.setLngLat(坐标)
.addTo(地图);
});

编码URI组件时,请参阅的详细信息https://api.tiles.mapbox.com/geocoding/v5/mapbox.places/6%20Antares%20Drive%2C%20Ottawa%2C%20Ontario%20K2E%208A2%2CCanada.json?access_token=pk.eyJ1IjoibGF3aXgxMCIsImEiOiJjamJlOGE1bmcyZ2V5MzNtcmlyaWRzcDZlIn0.ZRQ73zzVxwcADIPvsqB6mg谢谢,但请不要这样对我不起作用。谢谢,但请不要这样。我已经修改了html var test=“加拿大K2E 6AE渥太华安纳塔雷斯大道6号”;var地址=encodeURI(测试);var dataz=“”//在页面上加载贴图样式后,添加源层和默认//单点.map.on('load',function(){map.addSource('single-point',{“type”):“geojson”,“data”:dataz};谢谢Andrew,你说得对,但我不知道如何使用SDK,因为它只是dynamics crm上的一个独立webresource。因此,我只需要一个html页面,它可以执行查询并显示类似于此功能的结果,而无需搜索。如果你看一个通过脚本标记使用它的示例,那么你可以在独立的htms页面上使用它。谢谢,我可以看到初始化,但看不到显示。对于地址,我必须使用encodeURI()进行编码函数,因为它是一个包含邮政编码、市、省和县的长地址。……而不是“Chester NJ”……但是地址在哪里用标记显示。'mapbox sdk js处理URL编码。一旦您得到结果,您可以使用GeoJSON源或HTML标记将其作为符号添加到地图中。mapbox GL js文档具有以下功能:这两个都是示例。mapbox sdk js处理URL编码。返回结果后,您可以使用GeoJSON源或HTML标记将其作为符号添加到地图中。mapbox GL js文档中有这两个示例。