`
zmfbird
  • 浏览: 49248 次
  • 性别: Icon_minigender_2
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

Google Maps 折线编码(修改2)

阅读更多

修改地方:输入一组坐标点求编码

#include "stdafx.h"
#include "string"
#include "iostream"
using namespace std;

//四舍五入取整函数
int interger(double x)
{
	int y;
	if(x<0)
		y=int(x-0.5);
	else if(x>=0)
		y=int(x+0.5);
	return y;
}
//无符号数编码
string encodeNumber(unsigned int sgn_num)
{
	
	string result="";
	 //将该二进制值分为5位一组的块
   while(sgn_num>=0x20)
   {
	   int x;
	   x=sgn_num&0x1f;
	   //进行异或加上63
	   x=x|0x20;
	    x=x+63;
	    result+=char(x);
	   sgn_num>>=5;
	   
	      }
  
   result+=char(sgn_num+63);
  
	return result;
}
//有符号值编码
string encodeSignedNumber(int num)
{
	int sgn_num;
	string result;
	//变换二进制值,左移,地位补0
	sgn_num=num<<1;

	if(num<0)
	{
		sgn_num=~(sgn_num);//对负数求反
	}
	result=encodeNumber(sgn_num);
	return result;

}

int _tmain(int argc, _TCHAR* argv[])
{
	//有符号数,设置成double型,双精度浮点型,10位有效数字,float是单精度浮点型,只有6位有效数字
	//一组数据
	string cl="(38.5,-120.2),(40.7,-120.95),(43.252,-126.453)";
	
	//string.size类型是size_type,不能与int比较,没找到其他方法,所以原字符串后加点东西做比较
	string p=",a";
	string p1="a";
	string result;
	cl+=p;
	double lat,lng;
	
	//设置个初始值
	int lat_x=0,lng_x=0;
	//设置差值
	int lat_y,lng_y;
	while(cl!=p1)
	{
	int w1=cl.find('(');
	int w2=cl.find(',');
	int w3=cl.find(')');
	lat=atof(cl.substr(1,w2-w1-1).c_str());
	lng=atof(cl.substr(w2+1,w3-1).c_str());
	
	int x=interger(lat*100000);
	int y=interger(lng*100000);
	//计算差值
	lat_y=x-lat_x;
	lng_y=y-lng_x;
	//用差值求arscII码
	string latlat,lnglng;
	latlat=encodeSignedNumber(lat_y);	
	result+=latlat;
	
	lnglng=encodeSignedNumber(lng_y);
	result+=lnglng;	
	//重设初值
	lat_x=x;
	lng_x=y;
	cl=cl.substr(w3+2);		
	
	}

    cout<<result<<endl;

	//system函数是用来执行一条dos命令或运行一个外部程序。 pause是暂停,并等待用户按键 
	system("pause");
	return 0;
}

 结果为:_p~iF~ps|U_ulLnnqC_mqNvxq`@           与google提供的例子结果一致

1
1
分享到:
评论

相关推荐

    polyline:在 Google Maps API 中解码和编码折线的工具

    折线Polyline 是一种在Google Maps API 中解码和编码折线的工具。 如果您想在查询 Google API 以获取路线时绕过 25 个 WayPoints 的限制,它会很有用。 通过解码用于在地图上绘制路径的折线,您可以获得更多坐标。 ...

    Google Maps API V3 中文参考文档(JavaScript)

    Polyline 是 Google Maps API V3 中的一种组件,用于在地图上绘制折线。开发者可以使用 PolylineOptions 对象来配置折线的基本属性,如颜色、宽度、路径等。 Polygon Polygon 是 Google Maps API V3 中的一种组件...

    谷歌折线编码器:将坐标(经度/纬度)编码为谷歌折线格式。-matlab开发

    谷歌折线编码器是一种高效的算法,它能够将一系列坐标点(通常为经度/纬度对)转化为紧凑的字符串格式,这种格式被称为谷歌折线编码。在MATLAB环境下实现这一功能,可以帮助开发者更便捷地与Google Static Maps API...

    google-map-polyline-encoding-tool:一个简单的类,用于处理Google Maps的折线编码

    Google Maps Polyline编码工具 一个简单PHP类,用于将转换为Google Maps的字符串。安装使用。 $ curl -sS https://getcomposer.org/installer | php$ cat &gt; composer.json &lt;&lt;EOF&gt;=1.2.1" }}EOF$ ...

    Google Maps API高级编程

    ├─06 Google Maps API高级编程 │ ├─6.1 GPolyline折线对象和GPolygon多边形对象 │ │ ├─6.1.1 使用GPolyline折线对象 │ │ ├─6.1.2 使用GPolygon多边形对象 │ │ ├─6.1.4 使用GPolyline和GPolygon的...

    js-polyline-codec:折线编码和解码

    Google Maps JavaScript折线编码 描述 使用此程序包在Nodejs或浏览器中编码和解码polyines。 折线编码是一种有损压缩算法,可让您将一系列坐标存储为单个字符串。 点坐标使用带符号的值进行编码。 要了解更多信息...

    [免费]Google_Maps_API_V3_中文参考文档.rar

    Google Maps API V3是Google提供的一套用于在网页上嵌入地图、进行地理位置处理的JavaScript接口。这个中文参考文档包含了详细的API使用指南和技术说明,帮助开发者更好地理解和利用这个强大的工具。下面将对其中的...

    Google Maps API开发大全 光盘源码

    2. **JavaScript API**:这是Google Maps API的主要部分,用于创建动态、交互式的地图。通过JavaScript API,开发者可以添加标记、信息窗口、自定义图层、绘制形状、进行地理编码、路径规划等。 3. **地图对象模型*...

    Google Maps API Reference

    例如,原先的 `GMap2` 对象现在也可以定义为 `google.maps.Map2`。 #### 核心类和类型 1. **GMap2** - 代表地图的主要对象。 - **GMapOptions** - 定义 GMap2 实例的配置选项。 - **GGoogleBarOptions** - 配置 ...

    gpoly_renderer:在OSM地图上呈现给定的Google折线编码的路线

    "gpoly_renderer" 是一个项目或库,它的主要功能是在OpenStreetMap (OSM) 地图上展示由Google折线编码表示的路线。标题表明这个工具或者服务可以将从Google Maps获取的特殊编码路径数据转换并显示在开源的地图平台上...

    EncodedPolyline:使用显示编码折线的Xamarin Forms Maps的Xamarin Forms项目的演示应用程序

    在共享的项目中,您将找到Xamarin.Forms.Maps Map的子类,该子类添加了对Google样式编码的折线的支持并设置了其颜色。 折线的解码发生在此子类中,并且此Forms控件与其自定义渲染器之间建立了一个对话框,以正确显示...

    Apress.Beginning.Google.Maps.API.3代码

    2. **地理编码**:通过`google.maps.Geocoder`服务将地址转换为坐标(经纬度),反之亦然,以便在地图上定位地点。 3. **标记(Markers)**:在地图上添加图标以表示特定位置。使用`google.maps.Marker`类,可以...

    GoogleMaps API例子程序

    5. **服务**:Google Maps API提供了多种服务,如地理编码服务(将地址转换为坐标)、路线规划服务、地点搜索服务等。这个部分可能会涵盖其中的一些服务,展示如何调用和使用它们。 6. **折线示例**:这展示了如何...

    Google Maps API V3学习(例子不断增加中)

    Google Maps API V3的核心概念包括地图对象、标记(Markers)、信息窗口(InfoWindows)、覆盖物(Overlays)、图层(Layers)以及地理编码(Geocoding)。开发者通过JavaScript代码调用这些功能,创建个性化的地图...

    google maps api 地图开发大全源码

    谷歌地图API(Google Maps API)是谷歌提供的一套强大的开发工具,允许开发者在自己的网站或应用中嵌入交互式地图,实现地图定位、导航、地理编码、路线规划等多种功能。这个"google maps api 地图开发大全源码"的...

    google maps api for flexbuilder4.5基础二次开发(1)

    在IT行业中,Google Maps API是一项强大的工具,它允许开发者将地图功能集成到自己的应用程序中,为用户提供丰富的地理信息展示和导航服务。对于FlexBuilder 4.5用户来说,结合Google Maps API进行二次开发能实现更...

    陈育春Google Maps API开发大全随书源码源码

    《陈育春Google Maps API开发大全》是一本深入解析Google Maps API的专业书籍,随书附带的源码提供了丰富的实践示例,帮助读者更好地理解和应用API。这些源码按照章节进行组织,包括了ch12到ch3等多个章节的内容,...

    Google_Maps_API_V3_HTML

    Google Maps JavaScript API V3 是 Google 提供的一个强大工具,用于在网页上集成交互式的地图服务。作为正式的 JavaScript API 版本,它允许开发者利用 HTML、CSS 和 JavaScript 技术创建丰富的地图应用程序,提供...

    Apress.Beginning.Google.Maps.API.3.Jul.2010.pdf

    2. **地图对象与事件处理**:书中的章节会讲解地图上的各种对象,如Marker(标记)、InfoWindow(信息窗口)、Polygon(多边形)、Polyline(折线)等,以及如何创建、修改和删除这些对象。同时,还会涉及到事件监听...

    Google_Maps_JavaScript_API_V3_教程及基础知识等

    Google Maps JavaScript API V3 是一个强大的工具,允许开发者在网页上集成交互式地图功能。这个API提供了丰富的功能,包括地图显示、标记定位、路线规划、地理编码以及自定义图层等。本文将详细介绍如何使用V3版本...

Global site tag (gtag.js) - Google Analytics