mapbox 百度地图地图是联网的吗

Mapbox、Google、OSM…你需要的分析底图技巧都在这里了
我的图书馆
Mapbox、Google、OSM…你需要的分析底图技巧都在这里了
感谢建一座空城将以下内容授权『建筑学院』发布你们还记得早期那篇文章吗?史上最懂你需求的地图,OSM具体用法教程带你玩转世界今天小编又跟进了这个主题,详细介绍了百度、谷歌地图在分析图制作中的神奇用法,很有参考价值。01百度个性化地图编辑器相对于高大上的Mapbox,百度出品的个性化地图编辑器明显更接地气一些,大部分城市的建筑肌理都能找到,编辑起来也很方便,非常适合快速制作图底分析图。网址在这里:http://developer.baidu.com/map/custom/使用起来很简单,进入网页,在左下角逐条添加样式规则对每一个元素的颜色样式、显隐等进行编辑就可以,还有一些固定的个性化模板可以选择。如果自己做好了一套满意的样式规则,想保留起来以后套用,那么可以点右下角的查看JSON,将里面的代码复制出来保存。调用的时候只要打开查看JSON,把JSON代码粘帖到里面,再点击修改后并更新就可以了&这里放一个自己调整好的JSON代码[{'featureType': 'poi','elementType': 'all','stylers': {'visibility': 'off'}},{'featureType': 'building','elementType': 'all','stylers': {'color': '#444444'}},{'featureType': 'road','elementType': 'geometry','stylers': {'color': '#cccccc'}},{'featureType': 'manmade','elementType': 'all','stylers': {'visibility': 'off'}},{'featureType': 'road','elementType': 'labels','stylers': {'visibility': 'off'}]&把上面分割线之间的内容拷贝进去应用,效果是这样的:关闭了所有文字和图标显示,高对比保留建筑和道路,以及水系和绿化,接下来还可以进一步编辑调整。02万能谷歌自定义地图(须翻墙)成果图先看看:谷歌的Styled Map Wizard其实早于百度推出,只是一直比较小众,再加上现在被墙了,嘘~~往下看的话,你先要有一个VPN。Styled Map Wizard项目地址:http://googlemaps.github.io/js-samples/styledmaps/wizard/index.html这个地址如果失效,请在google搜索引擎内输入“Styled Map Wizard”关键词查找项目最新地址(原地址是http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html,已失效,随着googlecode的关门大吉而消失,还好这个项目现在在github里复活了)先说明下,为什么要翻墙用谷歌,不用现成的百度。百度的个性化地图编辑器是不错,上手也很好,但是依然摆脱不了一个问题,数据。以福建的地图为例子,福州是这样的看着还不错,对吧,建筑图层都有,换厦门看看惨不忍睹,只有极个别的建筑有数据换不用翻墙的maps.google.cn看看上下一对比,明显的,虽然退出中国好些年,但地图这块谷歌依旧还是做的很用心好了,言归正传,说明下如何用谷歌的Styled Map Wizard来做图底分析再放一次链接:http://googlemaps.github.io/js-samples/styledmaps/wizard/index.html自备梯子!自备梯子!自备梯子!重要的事情说三遍,不翻墙能进网页,但地图数据刷不出来!连上之后就是这样的界面搜索定位到所要的位置和大小比例后,我们要做的就是在右边map style添加一项项的风格项,然后在左边工具栏里对每项style进行编辑定义地图显示效果。具体举例说明:首先,图上杂七杂八的文字太多,先去掉Feature type选All——所有对象Element type选ALL-Labels,到这一级就可以了,选中所有标签然后Visibility可见性选Off,关闭了所有标签,立马清爽这里说明下,后添加的style,优先级是大于前面添加的,所以我们如果要把道路文字显示出来,可以添加一个新的style,把Road的labels-text打开就行接着,对建筑进行处理,不得不说GOOGLE对于建筑分的有点过于细致了,各类建筑包含在Landscape-Man made和Point of interest下的各个分项中,如果我们只是要做简单的图底分析,建议先对大项做调整,有遗漏的再在每个分项里调整,还是那句话,后面添加的styles优先级大于早先添加的先是Point of interest整个大项,明显覆盖的建筑还不是很全(这个取决于你所选地区地图上建筑的类型,不过我觉得GOOGLE分类的不是很对)接着再新增一个style对Landscape-Man made进行处理两相结合,建筑基本妥了回头调整Point of interest-park这项,把公园绿地的颜色调回来剩下道路什么的就不再赘述,上最后的效果,顺便说明下,除了颜色、显隐,还有很多细节是可以调整的,比如色调、饱和度、亮度、伽马值、道路宽度等(道路宽度设定的是绝对值,缩放地图的话要重新调整)……点右边工具栏最底下的Static Map,就能输出保存图片了,图片长宽尺寸不是很大,只有640*480,需要大图可以多输出几张在PS里拼合貌似GOOGLE的JSON只能查看,没法粘帖编辑,这个百度做的比较好一点。扩展下思路,有了谷歌的Styled Map Wizard、百度的个性化地图编辑器、MAPBOX、OSM等等好用的地图工具,仅仅拿来做图底分析是不是太浪费了点?最后借用一张知乎上的图最后,小编希望大家都能做出更好的分析效果! 版权声明
TA的最新馆藏
喜欢该文的人也喜欢51CTO旗下网站
基于MapBox在Android应用中集成地图支持
MapBox是一个开源的矢量地图SDK。此框架的承诺是在开发视频游戏方面将提供优质的渲染速度和平滑度。如果你有兴趣将地图功能集成到你的应用程序,那么MapBox将是值得你考虑的选择方案之一。
作者:朱先忠 编译来源:51CTO| 09:47
MapBox是一个开源的矢量地图SDK。此框架的承诺是在开发视频游戏方面将提供优质的渲染速度和平滑度。如果你有兴趣将地图功能集成到你的应用程序,那么MapBox将是值得你考虑的选择方案之一。
二、权限设置
首先需要说明的是,你可以从GitHub网站下载到本文提供的源代码,地址是。
要想在你的应用程序如使用Mapbox,你需要一个API访问令牌。为此,你需要先创建一个Mapbox帐户,你可以在网站https://www.mapbox.com/studio/account/tokens处找到你需要的有类数据。
然后,把令牌添加到你的Android程序的文件strings.xml中:
&name=&accessToken&Your&access&token&
接下来,在配置文件AndroidManifest.xml中加入如下所示的Internet和位置访问权限:
&android:name=&android.permission.ACCESS_NETWORK_STATE&&&&android:name=&android.permission.INTERNET&&&&&android:name=&android.permission.ACCESS_COARSE_LOCATION&&&android:name=&android.permission.ACCESS_FINE_LOCATION&&&android:name=&android.permission.ACCESS_WIFI_STATE&&
请注意:在Android Marshmallow (API 23)及更高的版本中在运行时是需要上述权限的。
三、安装MapBox
接下来,打开配置文件build.gradle(对应于Module: app文件夹下的那个),添加对MapBox的依赖。请参考如下所示配置代码:
repositories&{&&&&&mavenCentral()&}&dependencies&{&&&&&.&.&.&&&&&&&compile('com.mapbox.mapboxsdk:mapbox-android-sdk:3.2.0@aar')&{&&&&&&&&&transitive&=&true&&&&}&&&&&compile&('com.mapbox.mapboxsdk:mapbox-android-directions:1.0.0@aar'){&&&&&&&&&&transitive=true&&&&&}&}&
上面代码中的第一处配置描述了Mapbox,后面的配置则对应于目录库(Directions library)描述,用于向应用程序提供驾车、步行以及跨自行车等调用函数,并支持在地图中绘制其行踪。
四、MapBox布局
接下来,打开布局文件content_main.xml,使用如下内容替换原来的内容:
&version=&1.0&&encoding=&utf-8&&&xmlns:android=&http://schemas.android.com/apk/res/android&&&&&&xmlns:mapbox=&http://schemas.android.com/apk/res-auto&&&&&&xmlns:tools=&http://schemas.android.com/tools&&&&&&android:layout_width=&match_parent&&&&&&android:layout_height=&match_parent&&&&&&tools:context=&com.example.valdio.mapboxintegration.MainActivity&&&&&&tools:showIn=&@layout/activity_main&&&&&&&&&&&&&&&android:id=&@+id/mapview&&&&&&&&&&android:layout_width=&fill_parent&&&&&&&&&&android:layout_height=&fill_parent&&&&&&&&&&mapbox:access_token=&@string/accessToken&&&&
接下来,初始化你需要在MainActivity文件中使用的变量:
public&class&MainActivity&extends&AppCompatActivity&{&&&private&MapView&mapView&=&null;&&&private&String&MAPBOX_ACCESS_TOKEN&=&&&;&&&private&DirectionsRoute&currentRoute&=&null;&&&...&
接下来,在MainActivity.java文件中,把onCreate()方法中的创建工具栏和浮动按钮的代码删除,添加如下代码来初始化地图:
String&MAPBOX_ACCESS_TOKEN&=&getResources().getString(R.string.accessToken);&//&Set&up&a&standard&Mapbox&map&MapView&mapView&=&(MapView)&findViewById(R.id.mapview);&mapView.setAccessToken(MAPBOX_ACCESS_TOKEN);&mapView.setStyleUrl(Style.MAPBOX_STREETS);&//&specify&the&map&style&&mapView.setZoom(14);&//&zoom&level&&mapView.onCreate(savedInstanceState);&
Mapbox需要实现Activity的生命同期方法以避免运行时错误;因此,需要添加如下的重写函数:
@Override&&protected&void&onStart()&{&&&&&&super.onStart();&&&&&&mapView.onStart();&&}&@Override&protected&void&onStop()&{&&&&&&super.onStop();&&&&&&mapView.onStop();&&}&@Override&&protected&void&onDestroy()&{&&&&&super.onDestroy();&&&&&&mapView.onDestroy();&&}&&@Override&&protected&void&onResume()&{&&&&&super.onResume();&&&&&mapView.onResume();&}&@Override&protected&void&onPause()&{&&&&&&super.onPause();&&&&&mapView.onPause();&}&&@Override&protected&void&onSaveInstanceState(Bundle&outState)&{&&&&&&super.onSaveInstanceState(outState);&&&&&mapView.onSaveInstanceState(outState);&}&
好了。现在配置好了Mapbox,可以构建应用程序了。
五、把标记添加到地图中
现在,请把如下代码添加到MainActivity的onCreate函数的最底部:
@Override&protected&void&onStart()&{&&&&&super.onStart();&&&&&mapView.onStart();&}&@Override&&protected&void&onStop()&{&&&&&super.onStop();&&&&&mapView.onStop();&}&@Override&protected&void&onDestroy()&{&&&&&super.onDestroy();&&&&&mapView.onDestroy();&}&@Override&protected&void&onResume()&{&&&&&&super.onResume();&&&&&&mapView.onResume();&&}&&@Override&&protected&void&onPause()&{&&&&&&super.onPause();&&&&&mapView.onPause();&&}&&@Override&&protected&void&onSaveInstanceState(Bundle&outState)&{&&&&&super.onSaveInstanceState(outState);&&&&&&mapView.onSaveInstanceState(outState);&&}&
这段代码中的CameraPosition是一个非常有用的Mapbox类,可用于设置用户视图的位置、角度、缩放和倾斜度,等等信息。
到现在,我们的地图看起来是如下所示的模样:
六、获取设备位置
为了使Mapbox能够访问到设置的位置信息,必须启动设置的位置服务,程序应当有使用它们的权限。如前面所提到的,在Android Marshmallow (API 23)及后续更高的版本中,在运行时是需要这些权限的。
现在,我们来创建一个新的函数,在其中加入取得当前位置的代码:
private&void&myLocation()&{&&&&&&&&&if&(ActivityCompat.checkSelfPermission(this,&Manifest.permission.ACCESS_FINE_LOCATION)&!=&PackageManager.PERMISSION_GRANTED&&&&ActivityCompat.checkSelfPermission(this,&Manifest.permission.ACCESS_COARSE_LOCATION)&!=&PackageManager.PERMISSION_GRANTED)&{&&&&&&&&&&&&&//&TODO:&Consider&calling&&&&&&&&&&&&&&//&&&&ActivityCompat#requestPermissions&&&&&&&&&&&&&&//&here&to&request&the&missing&permissions,&and&then&overriding&&&&&&&&&&&&&&//&&&public&void&onRequestPermissionsResult(int&requestCode,&String[]&permissions,&&&&&&&&&&&&&&//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&int[]&grantResults)&&&&&&&&&&&&&&//&to&handle&the&case&where&the&user&grants&the&permission.&See&the&documentation&&&&&&&&&&&&&&//&for&ActivityCompat#requestPermissions&for&more&details.&&&&&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&mapView.setMyLocationEnabled(true);&&&&&&&&&mapView.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW);&&&&&&&&&&mapView.getMyLocation();&&&&&&}&
然后,在地图初始化代码后添加如下函数调用:
...&&mapView.onCreate(savedInstanceState);&&myLocation();&
在现在的情况中,我们把跟踪方式设置为TRACKING_FOLLOW,这意味着用户的位置将持续不断地被监控,而且地图会不断地随着变化不断更新。
七、在地图上绘制线路
现在,我们创建了标记与位置,接下来就是在地图上绘制线路了。
这要使用前面在依赖性设置时所导入的第二个库(Directions library),这也是Mapbox团队自行开发的。
下面描述了其工作原理:
1、创建两个航点位置,一个是出发点,一个对应目的地。
2、创建一个MapboxDirections生成器对象,用于向Mapbox API发出网络请求,其中的数据包含对应于出发点和目的点的航点位置信息,还有方向路线有关的配置信息(驾驶、步行或骑自行车等)。
3、异步执行方向要求。其中,MapboxDirections类提供了一个使用Retrofit API的内置的异步请求。具体地说,是使用enqueue()函数来执行请求。
4、OnResponse()方法返回Retrofit响应结果,这是一个标准的JSON API响应。
5、响应正文中包含位置坐标对信息,稍后这些坐标将绘制在地图上。
6、采用Mapbox Polyline函数把坐标绘制在地图上。折线(Polyline)是一种几何特征,通过多条线段首尾相连而形成一条不封闭的折线。
为了使用Direction库,我们需要获得设备的位置作为起源航点,以及由用户通过长按方式来指定目的地航点的位置信息。
八、加入航点位置并在目标地添加标记
现在,请把如下代码添加到onCreate方法的最后面:
mapView.setOnMapLongClickListener(new&MapView.OnMapLongClickListener()&{&&&&&&@Override&&&&&&public&void&onMapLongClick(LatLng&point)&{&&&&&&&&&//Remove&previously&added&markers&&&&&&&&&&//Marker&is&an&annotation&that&shows&an&icon&image&at&a&geographical&location&&&&&&&&&&//so&all&markers&can&be&removed&with&the&removeAllAnnotations()&method.&&&&&&&&&&mapView.removeAllAnnotations();&&&&&&&&&&//&Set&the&origin&waypoint&to&the&devices&location&&&&&&&&&&Waypoint&origin&=&new&Waypoint(mapView.getMyLocation().getLongitude(),&mapView.getMyLocation().getLatitude());&&&&&&&&&&//&Set&the&destination&waypoint&to&the&location&point&long&clicked&by&the&user&&&&&&&&&&Waypoint&destination&=&new&Waypoint(point.getLongitude(),&point.getLatitude());&&&&&&&&&&//&Add&marker&to&the&destination&waypoint&&&&&&&&&&mapView.addMarker(new&MarkerOptions()&&&&&&&&&&&&&&&&&&.position(new&LatLng(point))&&&&&&&&&&&&&&&&&&.title(&Destination&Marker&)&&&&&&&&&&&&&&&&&.snippet(&My&destination&));&&&&&&&&&//&Get&route&from&API&&&&&&&&&getRoute(origin,&destination);&&&&&}&&});&
九、创建MapboxDirections网络请求并异步运行
接下来,再创建一个如下所示的方法,以便取得最佳路由信息:
private&void&getRoute(Waypoint&origin,&Waypoint&destination)&{&&&MapboxDirections&directions&=&new&MapboxDirections.Builder()&&&&&&&&&&&&.setAccessToken(MAPBOX_ACCESS_TOKEN)&&&&&&&&&&&.setOrigin(origin)&&&&&&&&&&&.setDestination(destination)&&&&&&&&&&&&.setProfile(DirectionsCriteria.PROFILE_WALKING)&&&&&&&&&&&&.build();&&&directions.enqueue(new&Callback()&{&&&&&&&&@Override&&&&&&&&public&void&onResponse(Response&response,&Retrofit&retrofit)&{&&&&&&&&&&&&//&Display&some&info&about&the&route&&&&&&&&&&&&currentRoute&=&response.body().getRoutes().get(0);&&&&&&&&&&&showToastMessage(String.format(&You&are&%d&meters&\nfrom&your&destination&,&currentRoute.getDistance()));&&&&&&&&&&&&&&&//&Draw&the&route&on&the&map&&&&&&&&&&&&drawRoute(currentRoute);&&&&&&&&}&&&&&&&@Override&&&&&&&&public&void&onFailure(Throwable&t)&{&&&&&&&&&&&showToastMessage(&Error:&&&+&t.getMessage());&&&&&&&&}&&&&});&&}&
十、使用地图上的坐标点绘制折线
再添加一个如下方法来实现路由绘制:
private&void&drawRoute(DirectionsRoute&route)&{&&&&//&Convert&List&into&LatLng[]&&&&List&waypoints&=&route.getGeometry().getWaypoints();&&&&LatLng[]&point&=&new&LatLng[waypoints.size()];&&&&for&(int&i&=&0;&i&&();&i++)&{&&&&&&&&point[i]&=&new&LatLng(&&&&&&&&&&&&&&&&waypoints.get(i).getLatitude(),&&&&&&&&&&&&&&&&waypoints.get(i).getLongitude());&&&&}&&&//&Draw&Points&on&MapView&&&&mapView.addPolyline(new&PolylineOptions()&&&&&&&&&&&&.add(point)&&&&&&&&&&&&.color(Color.parseColor(&#38afea&))&&&&&&&&&&&&.width(5));&&}&private&void&showToastMessage(String&message)&{&&&&Toast.makeText(this,&message,&Toast.LENGTH_SHORT).show();&&}&
好了,现在运行你的工程。在地图上选择两个点,你会观察到类似于下图所示结果:
十一、小结
本文中,我们介绍了使用MapBox SDK及其Directory库的基本知识。其实,MapBox还有更多更丰富的内容可应用于你的程序中,例如不同的地图风格,实现定制的矢量地图绘制等等。
作为本文补充,我还推荐另一个库Geocoding(https://github.com/mapbox/mapbox-geocoder-android)。这个库可以把坐标信息转换成地图,或者实现相反的转换。当然,要想了解更多的有关MapBox信息,建议学习其移动应用有关实例()。在这个网址中你会发现更多的库可用。
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条聚焦聚焦关注热点
24H热文一周话题本月最赞
讲师:125342人学习过
讲师:51794人学习过
讲师:14887人学习过
精选博文论坛热帖下载排行
本书描述了怎样应用面向对象的概念来进行.NET应用程序的架构、设计和开发。作者将重点放在了面向业务的对象,即业务对象和怎样在包括Web和...
订阅51CTO邮刊使用 Mapbox 地图
此页面是否有用?
是否有注释?请在此处留下注释。
感谢您提供反馈!
适用于: Tableau Desktop
使用 Mapbox 地图
如果您可以访问 Mapbox 地图,则可以将其添加至您的工作簿,或者使用它们在 Tableau Desktop 中创建地图视图。
将使用 Mapbox 地图的视图发布到 Tableau Server、Tableau Online 或 Tableau Public 时,您的受众群体能够查看您的数据和 Mapbox 地图,而无需拥有 Mapbox 帐户。
将 Mapbox 地图添加到工作簿
在 Tableau Desktop 中,您可以将 Mapbox 地图添加到您的工作簿,并将其用作背景地图。
将 Mapbox 地图添加到工作簿后,该地图将随工作簿一起保存,并可供您与之共享工作簿的任何人使用。您还可以将 Mapbox 地图另存为可与其他人共享的 Tableau 地图源 (.tms) 文件,以便他们可快速连接到该地图源,并在其自己的工作簿中使用。有关详细信息,请参见。
在 Tableau Desktop 中,选择“地图”&“背景地图”&“地图服务”。
在“地图服务”对话框中,选择“添加”&“Mapbox 地图”。
在“添加 Mapbox 地图”对话框中,您可以添加 Mapbox GL 地图或经典 Mapbox 地图。为此,您需要 Mapbox 帐户中的以下各项:
API 访问令牌
一个或多个地图 ID
样式 URL(仅限 Mapbox GL 地图)
有关上面任何一项的详细信息,请参见 Mapbox API 帮助的、和部分。
若要添加 Mapbox GL 地图,请在“添加 Mapbox 地图”对话框中单击“Mapbox GL”,然后执行下列操作:
注意:默认情况下已选中 Mapbox GL。
对于“样式名称”,输入 Mapbox 地图的名称。此名称可以是您想要的任何名称,并且将在您添加地图后出现在“背景地图”菜单中。
对于“Url”,输入要添加的 Mapbox 地图的样式 URL。
此 URL 包含您的 Mapbox 地图、访问令牌和用户名的样式 ID。它可能类似于以下项:
https://api.mapbox.com/styles/v1/&username&/&styleid&?access_token=&access token&
将正确的样式 URL 添加到此字段时,会自动填充“API 访问令牌”、“用户名”和“层 ID”字段。
如果没有 Mapbox 地图的样式 URL,则必须输入 Mapbox 访问令牌、用户名和层(地图)ID 以添加您的 Mapbox 地图。
若要添加经典 Mapbox 地图,请在“添加 Mapbox 地图”对话框中单击“经典”,然后执行下列操作:
对于“样式名称”,输入 Mapbox 地图的名称。此名称可以是您想要的任何名称,并且将在您添加地图后出现在“背景地图”菜单中。
对于“API 访问令牌”,输入要添加的 Mapbox 地图的 API 访问令牌。
选择 Mapbox 预设样式,或者添加一个或多个自定义地图层:
使用 Mapbox 预设样式:
添加一个或多个地图层:
单击“Mapbox 预设样式”,然后从下拉菜单中选择一种样式。
单击“自定义”,然后在指明的空间中输入一个或多个地图 ID。
完成时,单击“确定”退出“添加 Mapbox 地图”对话框,然后单击“关闭”返回到视图。
使用 Mapbox 地图创建地图视图
若要使用 Mapbox 地图创建地图视图,请选择“地图”&“背景地图”,然后选择要使用的 Mapbox 地图。接下来,构建地图视图。有关信息,请参见。
在视图中增减地图层
如果在 Tableau 中连接到 Mapbox 地图后选择按地图 ID 添加一个或多个自定义层,则可以使用“地图层”窗格在视图中增减那些层。有关详细信息,请参见“自定义地图的外观”主题中的。
默认情况下,当您首次将 Mapbox 地图添加到工作簿时,所有地图层将出现在视图中。
注意: 使用 Mapbox 预设样式时,您无法切换地图内的层。 举例来说,如果使用 Mapbox Streets 地图,您将无法像使用 Tableau 地图服务一样切换街道、标签、建筑物轮廓或行政边界。这是因为 Tableau 只接收组成 Mapbox 地图的图像图块。
地图层与 Tableau 中的数据层不同。数据层是一些预先构建的图块,其中按各种级别(例如州/省/市/自治区、县和块组)包括人口统计学信息。数据层和 Mapbox 在 Tableau 中是彼此独立的。有关数据层工作原理的详细信息,请参见。
另请参见:Mapbox、Google、OSM…你需要的分析底图技巧都在这里了_360doc个人图书馆
Mapbox、Google、OSM…你需要的分析底图技巧都在这里了
  感谢建一座空城将以下内容授权『建筑学院』发布你们还记得早期那篇文章吗?史上最懂你需求的地图,OSM具体用法教程带你玩转世界今天小编又跟进了这个主题,详细介绍了百度、谷歌地图在分析图制作中的神奇用法,很有参考价值。01百度个性化地图编辑器相对于高大上的Mapbox,百度出品的个性化地图编辑器明显更接地气一些,大部分城市的建筑肌理都能找到,编辑起来也很方便,非常适合快速制作图底分析图。网址在这里:http://developer.baidu.com/map/custom/使用起来很简单,进入网页,在左下角逐条添加样式规则对每一个元素的颜色样式、显隐等进行编辑就可以,还有一些固定的个性化模板可以选择。如果自己做好了一套满意的样式规则,想保留起来以后套用,那么可以点右下角的查看JSON,将里面的代码复制出来保存。调用的时候只要打开查看JSON,把JSON代码粘帖到里面,再点击修改后并更新就可以了这里放一个自己调整好的JSON代码[{'featureType': 'poi','elementType': 'all','stylers': {'visibility': 'off'}},{'featureType': 'building','elementType': 'all','stylers': {'color': '#444444'}},{'featureType': 'road','elementType': 'geometry','stylers': {'color': '#cccccc'}},{'featureType': 'manmade','elementType': 'all','stylers': {'visibility': 'off'}},{'featureType': 'road','elementType': 'labels','stylers': {'visibility': 'off'}]把上面分割线之间的内容拷贝进去应用,效果是这样的:关闭了所有文字和图标显示,高对比保留建筑和道路,以及水系和绿化,接下来还可以进一步编辑调整。02万能谷歌自定义地图(须翻墙)成果图先看看:谷歌的Styled Map Wizard其实早于百度推出,只是一直比较小众,再加上现在被墙了,嘘~~往下看的话,你先要有一个VPN。Styled Map Wizard项目地址:http://googlemaps.github.io/js-samples/styledmaps/wizard/index.html这个地址如果失效,请在google搜索引擎内输入“Styled Map Wizard”关键词查找项目最新地址(原地址是http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html,已失效,随着googlecode的关门大吉而消失,还好这个项目现在在github里复活了)先说明下,为什么要翻墙用谷歌,不用现成的百度。百度的个性化地图编辑器是不错,上手也很好,但是依然摆脱不了一个问题,数据。以福建的地图为例子,福州是这样的看着还不错,对吧,建筑图层都有,换厦门看看惨不忍睹,只有极个别的建筑有数据换不用翻墙的maps.google.cn看看上下一对比,明显的,虽然退出中国好些年,但地图这块谷歌依旧还是做的很用心好了,言归正传,说明下如何用谷歌的Styled Map Wizard来做图底分析再放一次链接:http://googlemaps.github.io/js-samples/styledmaps/wizard/index.html自备梯子!自备梯子!自备梯子!重要的事情说三遍,不翻墙能进网页,但地图数据刷不出来!连上之后就是这样的界面搜索定位到所要的位置和大小比例后,我们要做的就是在右边map style添加一项项的风格项,然后在左边工具栏里对每项style进行编辑定义地图显示效果。具体举例说明:首先,图上杂七杂八的文字太多,先去掉Feature type选All——所有对象Element type选ALL-Labels,到这一级就可以了,选中所有标签然后Visibility可见性选Off,关闭了所有标签,立马清爽这里说明下,后添加的style,优先级是大于前面添加的,所以我们如果要把道路文字显示出来,可以添加一个新的style,把Road的labels-text打开就行接着,对建筑进行处理,不得不说GOOGLE对于建筑分的有点过于细致了,各类建筑包含在Landscape-Man made和Point of interest下的各个分项中,如果我们只是要做简单的图底分析,建议先对大项做调整,有遗漏的再在每个分项里调整,还是那句话,后面添加的styles优先级大于早先添加的先是Point of interest整个大项,明显覆盖的建筑还不是很全(这个取决于你所选地区地图上建筑的类型,不过我觉得GOOGLE分类的不是很对)接着再新增一个style对Landscape-Man made进行处理两相结合,建筑基本妥了回头调整Point of interest-park这项,把公园绿地的颜色调回来剩下道路什么的就不再赘述,上最后的效果,顺便说明下,除了颜色、显隐,还有很多细节是可以调整的,比如色调、饱和度、亮度、伽马值、道路宽度等(道路宽度设定的是绝对值,缩放地图的话要重新调整)……点右边工具栏最底下的Static Map,就能输出保存图片了,图片长宽尺寸不是很大,只有640*480,需要大图可以多输出几张在PS里拼合貌似GOOGLE的JSON只能查看,没法粘帖编辑,这个百度做的比较好一点。扩展下思路,有了谷歌的Styled Map Wizard、百度的个性化地图编辑器、MAPBOX、OSM等等好用的地图工具,仅仅拿来做图底分析是不是太浪费了点?最后借用一张知乎上的图最后,小编希望大家都能做出更好的分析效果!版权声明
来自:&&& 《》}

我要回帖

更多关于 mapbox 百度地图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信