经纬度定位位置api调用代码实例和经纬度转换大地坐标接口调用代码实例

经纬度定位位置api调用代码实例和经纬度转换大地坐标接口调用代码实例
经纬度定位位置api调用代码实例和经纬度转换大地坐标接口调用代码实例

经纬度定位位置api调用代码实例和经纬度转换大地坐标接口调用代码实例

api调用从而实现聚合数据谷歌POI接口数据调用,对于聚合数据基于JAVA的股票数据接口调用代码可以计算unsigned long long类型范围内的值的阶

可自动和手动切换的jQuery图片轮播,快速排序一种简练和demo

快速在内存中建立树结构的工具

扩展String对象replaceAll函数 void DHT11(void) //温湿传感启动

{

DATA_PIN=0;

Delay_ms(50); //>18MS

DATA_PIN=1;

P1DIR &= ~0x02; //重新配置IO口方向

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

if(!DATA_PIN)

//利用for循环遍历关联数组

//利用jquery实现百度新闻导航菜单滑动动画

//面向对象&静态构造函数&const

{

ucharFLAG=2;

while((!DATA_PIN)&&ucharFLAG++);

ucharFLAG=2;

while((DATA_PIN)&&ucharFLAG++);

COM();

ucharRH_data_H_temp=ucharcomdata;

COM();

ucharRH_data_L_temp=ucharcomdata;

COM();

ucharT_data_H_temp=ucharcomdata;

COM();

ucharT_data_L_temp=ucharcomdata;

COM();

ucharcheckdata_temp=ucharcomdata;

DATA_PIN=1;

//模拟登录京东并获取京东商品信息,如价格、库

//模拟登录开源中国并发动弹

uchartemp=(ucharT_data_H_temp+ucharT_data_L_temp+ucharRH_data_H_temp+ucharRH_da ta_L_temp);

if(uchartemp==ucharcheckdata_temp)

{

ucharRH_data_H=ucharRH_data_H_temp; ucharRH_data_L=ucharRH_data_L_temp; ucharT_data_H=ucharT_data_H_temp;

ucharT_data_L=ucharT_data_L_temp;

ucharcheckdata=ucharcheckdata_temp; }

wendu_shi=ucharT_data_H/10;

wendu_ge=ucharT_data_H%10;

shidu_shi=ucharRH_data_H/10;

shidu_ge=ucharRH_data_H%10;

}

else //没用成功读取,返回0

{

wendu_shi=0;

wendu_ge=0;

shidu_shi=0;

shidu_ge=0;

}

P1DIR |= 0x02; //IO口需要重新配置

//判断浏览器是否opera

//判断是否为内网IP

//判断是否为域名同时域名解析

[文件] DHT11.h ~ 442B

#ifndef __DHT11_H__

#define __DHT11_H__

[代码] [Google Go]代码

package main

import (

"io/ioutil"

"net/http"

"net/"

"fmt"

"encoding/json"

)

APPKEY = "*******************" //您申请的APPKEY func main(){

//1.上海黄金交易所

Request1()

//2.上海期货交易所

Request2()

//3.银行账户黄金

Request3()

}

//1.上海黄金交易所

func Request1(){

//请求地址

juhe :="/finance/gold/shgold"

//初始化参数

param:=.Values{}

//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参

param.Set("key",APPKEY) //APP Key

param.Set("v","") //JSON格式版本(0或1)默认为0

//发送请求

data,err:=Get(juhe,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }

}

}

//2.上海期货交易所

func Request2(){

//请求地址

juhe :="/finance/gold/shfuture"

//初始化参数

param:=.Values{}

//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参

param.Set("key",APPKEY) //APP Key

param.Set("v","") //JSON格式版本(0或1)默认为0

//发送请求

data,err:=Get(juhe,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }

}

}

//3.银行账户黄金

func Request3(){

//请求地址

juhe :="/finance/gold/bankgold"

//初始化参数

param:=.Values{}

//配置请求参数,方法内部已处理encode问题,中文参数可以直接传参

param.Set("key",APPKEY) //APP Key

//发送请求

data,err:=Get(juhe,param)

if err!=nil{

fmt.Errorf("请求失败,错误信息:\r\n%v",err)

}else{

var netReturn map[string]interface{}

json.Unmarshal(data,&netReturn)

if netReturn["error_code"].(float64)==0{

fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"]) }

}

}

// get 网络请求

func Get(api string,params .Values)(rs[]byte ,err error){

var *.

,err=.Parse(api)

if err!=nil{

fmt.Printf("解析错误:\r\n%v",err)

return nil,err

}

//如果参数中有中文参数,这个方法会进行Encode

.RawQuery=params.Encode()

resp,err:=http.Get(.String())

if err!=nil{

fmt.Println("err:",err)

return nil,err

}

defer resp.Body.Close()

return ioutil.ReadAll(resp.Body)

}

// post 网络请求 ,params 是.Values类型

func Post(api string, params .Values)(rs[]byte,err error){ resp,err:=http.PostForm(api, params)

if err!=nil{

return nil ,err

}

defer resp.Body.Close()

return ioutil.ReadAll(resp.Body)

}

代码描述:基于GO的黄金数据接口调用代码实例

关联数据:黄金数据

[代码] [C#]代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using https://www.360docs.net/doc/5b6626320.html,;

using System.IO;

using https://www.360docs.net/doc/5b6626320.html,;

using System.Diagnostics;

using System.Web;

//----------------------------------

// 黄金数据调用示例代码-聚合数据

// 在线接口文档:www/docs/29

// 代码中JsonObject类下载地

址:https://www.360docs.net/doc/5b6626320.html,/download/gcm3206021155665/7458439

//----------------------------------

namespace ConsoleAPI

{

class Program

{

static void Main(string[] args)

{

string appkey = "*******************"; //配置您申请的appkey

//1.上海黄金交易所

string 1 = "/finance/gold/shgold";

var parameters1 = new Dictionary();

parameters1.Add("key", appkey);//你申请的key

parameters1.Add("v" , ""); //JSON格式版本(0或1)默认为0

string result1 = sendPost(1, parameters1, "get");

JsonObject newObj1 = new JsonObject(result1);

String errorCode1 = newObj1["error_code"].Value;

if (errorCode1 == "0")

{

Debug.WriteLine("成功");

Debug.WriteLine(newObj1);

}

else

{

//Debug.WriteLine("失败");

Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1["reason"].Value); }

//2.上海期货交易所

string 2 = "/finance/gold/shfuture";

var parameters2 = new Dictionary();

parameters2.Add("key", appkey);//你申请的key

parameters2.Add("v" , ""); //JSON格式版本(0或1)默认为0

string result2 = sendPost(2, parameters2, "get");

JsonObject newObj2 = new JsonObject(result2);

String errorCode2 = newObj2["error_code"].Value;

if (errorCode2 == "0")

{

Debug.WriteLine("成功");

Debug.WriteLine(newObj2);

}

else

{

//Debug.WriteLine("失败");

Debug.WriteLine(newObj2["error_code"].Value+":"+newObj2["reason"].Value); }

//3.银行账户黄金

string 3 = "/finance/gold/bankgold";

var parameters3 = new Dictionary();

parameters3.Add("key", appkey);//你申请的key

string result3 = sendPost(3, parameters3, "get");

JsonObject newObj3 = new JsonObject(result3);

String errorCode3 = newObj3["error_code"].Value;

if (errorCode3 == "0")

{

Debug.WriteLine("成功");

Debug.WriteLine(newObj3);

}

else

{

//Debug.WriteLine("失败");

Debug.WriteLine(newObj3["error_code"].Value+":"+newObj3["reason"].Value); }

}

///

/// Http (GET/POST)

///

/// 请求

/// 请求参数

/// 请求方法

/// 响应内容

static string sendPost(string , IDictionary parameters, string method)

{

if (method.ToLower() == "post")

{

HttpWebRequest req = null;

HttpWebResponse rsp = null;

System.IO.Stream reqStream = null;

try

{

req = (HttpWebRequest)WebRequest.Create();

req.Method = method;

req.KeepAlive = false;

req.ProtocolVersion = HttpVersion.Version10;

req.Timeout = 5000;

req.ContentType =

"application/x-www-form-encoded;charset=utf-8";

byte[] postData =

Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8"));

reqStream = req.GetRequestStream();

reqStream.Write(postData, 0, postData.Length);

rsp = (HttpWebResponse)req.GetResponse();

Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding);

}

catch (Exception ex)

{

return ex.Message;

}

finally

{

if (reqStream != null) reqStream.Close();

if (rsp != null) rsp.Close();

}

}

else

{

//创建请求

HttpWebRequest request = (HttpWebRequest)WebRequest.Create( + "?" + BuildQuery(parameters, "utf8"));

//GET请求

request.Method = "GET";

request.ReadWriteTimeout = 5000;

request.ContentType = "text/html;charset=UTF-8";

HttpWebResponse response =

(HttpWebResponse)request.GetResponse();

Stream myResponseStream = response.GetResponseStream();

StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));

//返回内容

string retString = myStreamReader.ReadToEnd();

return retString;

}

}

///

/// 组装普通文本请求参数。

///

/// Key-Value形式请求参数字典

/// 编码后的请求数据

static string BuildQuery(IDictionary parameters, string encode)

{

StringBuilder postData = new StringBuilder();

bool hasParam = false;

IEnumerator> dem =

parameters.GetEnumerator();

while (dem.MoveNext())

{

string name = dem.Current.Key;

string value = dem.Current.Value;

// 忽略参数名或参数值为空的参数

if

(!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)

{

if (hasParam)

{

postData.Append("&");

}

postData.Append(name);

postData.Append("=");

if (encode == "gb2312")

{

postData.Append(HttpUtility.Encode(value,

Encoding.GetEncoding("gb2312")));

}

else if (encode == "utf8")

{

postData.Append(HttpUtility.Encode(value,

Encoding.UTF8));

}

else

{

postData.Append(value);

}

hasParam = true;

}

}

return postData.ToString();

}

///

/// 把响应流转换为文本。

///

/// 响应流对象

/// 编码方式

/// 响应文本

static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding) {

System.IO.Stream stream = null;

StreamReader reader = null;

try

{

// 以字符流的方式读取HTTP响应

stream = rsp.GetResponseStream();

reader = new StreamReader(stream, encoding);

return reader.ReadToEnd();

}

finally

{

// 释放资源

if (reader != null) reader.Close();

if (stream != null) stream.Close();

if (rsp != null) rsp.Close();

}

}

}

}

[代码] [PHP]代码

/**

* c远程传输工具

*/ https://www.360docs.net/doc/5b6626320.html,

public function post_c($,$body,$header,$type='POST'){

$ch = c_init();

c_setopt($ch,COPT_,$);

c_setopt($ch,COPT_HEADER,0);//0只要正文

c_setopt($ch,COPT_TIMEOUT,5);//设置超时时间

c_setopt($ch,COPT_CONNECTTIMEOUT,5);

//将c_exec()获取的信息以文件流的形式返回,而不是直接输出。 c_setopt($ch,COPT_RETURNTRANSFER,1);

//增加header头信息

// array_push($header,'Accept:application/json');

// array_push($header,'Content-Type:application/json');

// array_push($header,'http:multipart/form-data');

if(count($body)>0){

c_setopt($ch,COPT_POSTFIELDS,$body);

}

if(count($header)>0){

c_setopt($ch,COPT_HTTPHEADER,$header);

}

//设置上传文件相关

c_setopt($ch,COPT_FOLLOWLOCATION,true);

c_setopt($ch,COPT_MAXREDIRS,3);//递归

c_setopt($ch,COPT_SSL_VERIFYPEER,false);// 对认证证书来源的检查 c_setopt($ch,COPT_SSL_VERIFYHOST,0);// 从证书中检查SSL加密算法 switch ($type) {

case 'GET':

c_setopt($ch,COPT_HTTPGET,1);

break;

case 'POST':

c_setopt($ch,COPT_POST,1);

break;

case 'PUT':

c_setopt($ch,COPT_CUSTOMREQUEST,'PUT');

break;

case 'DELETE':

c_setopt($ch,COPT_CUSTOMREQUEST,'DELETE');

break;

}

//上传文件相关设置

c_setopt($ch,COPT_ENCODING,'gzip');

c_setopt($ch,COPT_USERAGENT,'SSTS Browser/1.0');

c_setopt($ch,COPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)');// 模拟用户使用的浏览器

if(c_errno($ch)){

return c_error($ch);

}

$content = c_exec($ch);

c_close($ch);//关闭c资源,并且释放系统资源

$result = json_decode($content,true);

if(!empty($result)){

return $result;

}else{

return $content;

}

}

[代码] [C/C++]代码

/*https://www.360docs.net/doc/5b6626320.html, 小型臭氧发生器侳侱侲

编译指令

$ /opt/sybase/OCS-16_0/bin/cpre64 -m teststu.cp

$ cc -m64 -g -DSYB_LP64 -I. -I/opt/sybase/OCS-16_0/include teststu.c

/opt/sybase/OCS-16_0/include/sybesql.c -L/opt/sybase/OCS-16_0/lib -lsybct64

-lsybtcl64 -lsybcs64 -lsybcomn64 -lsybintl64 -lsybunic64 -rdynamic -ldl -lnsl -lm -o teststu

*/

#include

/*建立通讯区域*/

EXEC SQL INCLUDE SQLCA;

/*

** These tokens must be declared in a declare section

** because they are used in declare sections below.

*/

EXEC SQL BEGIN DECLARE SECTION;

#define TYPESIZE 13

#define TIDSIZE 6

EXEC SQL END DECLARE SECTION;

#define EOLN '\0'

/*

** Forward declarations of the error and message handlers and

** other subroutines called from main().

*/

void error_handler();

void warning_handler();

int

main(int argc, char *argv[])

{

/*声明宿主变量*/

EXEC SQL BEGIN DECLARE SECTION;

/* storage for login name and password. */

char username[30];

char sname[30];

char password[30];

char server[30];

EXEC SQL END DECLARE SECTION;

/*错误处理*/

EXEC SQL WHENEVER SQLERROR CALL error_handler();

EXEC SQL WHENEVER SQLWARNING CALL warning_handler();

EXEC SQL WHENEVER NOT FOUND CONTINUE;

/*连接到 SQL SERVER 服务器*/

/*

** Copy the user name and password defined in sybsqlex.h to

** the variables declared for them in the declare section.

*/

strcpy(username, "mymotif");

strcpy(password, "wxwpxh");

strcpy(server, "MYMOTIFVOSTRO145480");

EXEC SQL CONNECT :username IDENTIFIED BY :password using :server;

EXEC SQL USE testdb;

EXEC SQL DECLARE c1 CURSOR FOR

SELECT SNAME FROM STUDENT;

EXEC SQL OPEN c1;

printf("name in table student\n");

do {

EXEC SQL FETCH c1 INTO :sname;

if (sqlca.sqlcode != 0) break;

printf( "student name = %s\n", sname );

} while ( 1 );

EXEC SQL CLOSE c1;

return(0);

}

/*错误处理程序*/

/*

** void error_handler()

**

** Displays error codes and numbers from the SQLCA and exits with ** an ERREXIT status.

*/

void

error_handler(void)

{

fprintf(stderr, "\n** SQLCODE=(%ld)", sqlca.sqlcode);

if (sqlca.sqlerrm.sqlerrml)

{

fprintf(stderr, "\n** ASE Error ");

fprintf(stderr, "\n** %s", sqlca.sqlerrm.sqlerrmc);

}

fprintf(stderr, "\n\n");

exit(-1);

}

/*

** void warning_handler()

**

** Displays warning messages.

*/

void

warning_handler(void)

{

if (sqlca.sqlwarn[1] == 'W')

{

fprintf(stderr,

"\n** Data truncated.\n");

}

if (sqlca.sqlwarn[3] == 'W')

{

fprintf(stderr,

"\n** Insufficient host variables to store results.\n");

}

return;

}

[代码] Log4j配置

org.slf4j

slf4j-log4j12

导入这个包,会引入下面两个jar

org.springframework

spring-context-support

commons-logging

commons-logging-api

1.1

org.springframework

spring-orm

org.aspectj

aspectjweaver

org.springframework

spring-webmvc

[文件] 无缝滚动.html ~ 1KB

[代码] 获取的参数

//获取的参数

function getParam(paramKey){

//获取当前

var = location.href;

//获取要取得的get参数位置

var get = .indexOf(paramKey +"=");

if(get == -1){

return false;

}

//截取字符串

var getParamStr = .slice(paramKey.length + get + 1);

//判断截取后的字符串是否还有其他get参数

var nextparam = getParamStr.indexOf("&");

if(nextparam != -1){

getParamStr = getParamStr.slice(0, nextparam);

}

return decodeURIComponent(getParamStr);

}

[代码] 添加参数

//添加参数

function addParam(,paramKey,paramVal){

var andStr = "?";

var beforeparam = .indexOf("?");

if(beforeparam != -1){

andStr = "&";

}

return + andStr + paramKey + "="+ encodeURIComponent(paramVal); }

[代码] 删除参数

//删除参数

function delParam(,paramKey){

var Param = .substr(.indexOf("?")+1);

var before = .substr(0,.indexOf("?"));

var next = "";

var arr = new Array();

if(Param!=""){

var ParamArr = Param.split("&");

for(var i=0;i

var paramArr = ParamArr[i].split("=");

if(paramArr[0]!=paramKey){

arr.push(ParamArr[i]);

}

}

}

if(arr.length>0){

next = "?"+arr.join("&");

}

= before+next;

return ;

}

[代码] [C#]代码

#region 防止sql注入式攻击(可用于UI层控制)

///

/// 判断字符串中是否有SQL攻击代码

///

/// 传入用户提交数据

/// true-安全;false-有注入攻击现有;

public bool ProcessSqlStr(string inputString)

{

string SqlStr =

@"and|or|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|ch r|char|asc|mid|substring|master|truncate|declare|xp_cmdshell|restore|backup|net +user|net +localgroup +administrators";

try

{

if ((inputString != null) && (inputString != String.Empty))

{

string str_Regex = @"\b(" + SqlStr + @")\b";

Regex Regex = new Regex(str_Regex, RegexOptions.IgnoreCase);

//string s = Regex.Match(inputString).Value;

if (true == Regex.IsMatch(inputString))

return false;

}

}

catch

{

return false;

}

return true;

}

///

/// 处理用户提交的请求,校验sql注入式攻击,在页面装置时候运行

///

System.Configuration.ConfigurationSettings.AppSettings["ErrorPage"].ToString(); 为用户自定义错误页面提示地址,

/// 在Web.Config文件时里面添加一个 ErrorPage 即可

///

///

///

public void ProcessRequest()

{

try

{

string getkeys = "";

string sqlErrorPage =

System.Configuration.ConfigurationSettings.AppSettings["ErrorPage"].ToString(); if (System.Web.HttpContext.Current.Request.QueryString != null)

{

for (int i = 0; i <

System.Web.HttpContext.Current.Request.QueryString.Count; i++)

{

getkeys =

System.Web.HttpContext.Current.Request.QueryString.Keys[i];

if

(!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys])) {

System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage + "?errmsg=" + getkeys + "有SQL攻击嫌疑!");

System.Web.HttpContext.Current.Response.End();

}

}

}

if (System.Web.HttpContext.Current.Request.Form != null)

{

for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++)

{

getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i]; if

(!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))

{

System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage + "?errmsg=" + getkeys + "有SQL攻击嫌疑!");

System.Web.HttpContext.Current.Response.End();

}

}

}

}

catch

{

// 错误处理: 处理用户提交信息!

}

}

#endregion

#region 转换sql代码(也防止sql注入式攻击,可以用于业务逻辑层,但要求UI层输入数据时候进行解码)

///

/// 提取字符固定长度

///

///

///

///

public string CheckStringLength(string inputString, Int32 maxLength)

{

if ((inputString != null) && (inputString != String.Empty))

{

inputString = inputString.Trim();

if (inputString.Length > maxLength)

inputString = inputString.Substring(0, maxLength);

}

return inputString;

}

///

/// 将输入字符串中的sql敏感字,替换成"[敏感字]",要求输出时,替换回来

大地坐标和经纬度之间的换算-经纬度算坐标

大地坐标和经纬度之间的换算 地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,我写一下一般的过程,希望对大家有点帮助. 大地座标-----→经纬度(地理坐标) 1,输入大地坐标数据,格式为Y空格X,输入到文本就行 如下,原始的大地坐标由一8位的Y和一个7位的X组成, 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y,6位,X,7位

保存这个TXT的文本文件。 2,打开MAPGIS,启动坐标投影变形程序 接下来选择投影转换>>>>用户文件投影转换 点打开文件,打开刚才的大地坐标的文本文件, 设置输入数据的格式,点击用户投影参数,并完成设置。 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米 好了以为设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置 我们输出的经纬度的单位应该是DDDMMMSS。SS注意 点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀 下面是计算出的结果文件 XP为经度,1234234。357就是123度42分34。357秒, YP为纬度,403950。225就是40度39分50。255秒(纬度没有最多90,所以没有三位数)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 经纬度——→大地座标 输入文件格式如下, 这里面的数据前面的为经度,格式为DDDMMSS,后面的为纬度,格式为DDMMSS 接下来的转换过程和大地坐标转换一样,只要将刚才的用户转换参数和结果转换参数交换即可, 要注意分带号的确定,如果你不知道分带号,就应该先计算分带号,算法是 经度/3得到的整数为三度带的分带号 经度/6得到的整数为六度带的分带号 其中的XP为地图上的Y坐标,记得在前面加上带号,其中的YP为地图上的X坐标

大地坐标与直角空间坐标转换计算公式

大地坐标与直角空间坐标转换计算公式 一、参心大地坐标与参心空间直角坐标转换 1名词解释: A :参心空间直角坐标系: a) 以参心0为坐标原点; b) Z 轴与参考椭球的短轴(旋转轴)相重合; c) X 轴与起始子午面和赤道的交线重合; d) Y 轴在赤道面上与X 轴垂直,构成右手直角坐标系0-XYZ ; e) 地面点P 的点位用(X ,Y ,Z )表示; B :参心大地坐标系: a) 以参考椭球的中心为坐标原点,椭球的短轴与参考椭球旋转轴重合; b) 大地纬度B :以过地面点的椭球法线与椭球赤道面的夹角为大地纬度B ; c) 大地经度L :以过地面点的椭球子午面与起始子午面之间的夹角为大地经度L ; d) 大地高H :地面点沿椭球法线至椭球面的距离为大地高H ; e) 地面点的点位用(B ,L ,H )表示。 2 参心大地坐标转换为参心空间直角坐标: ?? ? ?? +-=+=+=B H e N Z L B H N Y L B H N X sin *])1(*[sin *cos *)(cos *cos *)(2 公式中,N 为椭球面卯酉圈的曲率半径,e 为椭球的第一偏心率,a 、b 椭球的长短半径,f 椭球扁率,W 为第一辅助系数 a b a e 2 2-= 或 f f e 1 *2-= W a N B W e = -=22 sin *1( 西安80椭球参数: 长半轴a=6378140±5(m )

短半轴b=6356755.2882m 扁 率α=1/298.257 3 参心空间直角坐标转换参心大地坐标 [ ] N B Y X H H e N Y X H N Z B X Y L -+= +-++==cos ))1(**)() (*arctan() arctan(2 22 2 2 二 高斯投影及高斯直角坐标系 1、高斯投影概述 高斯-克吕格投影的条件:1. 是正形投影;2. 中央子午线不变形 高斯投影的性质:1. 投影后角度不变;2. 长度比与点位有关,与方向无关; 3. 离中央子午线越远变形越大 为控制投影后的长度变形,采用分带投影的方法。常用3度带或6度带分带,城市或工程控制网坐标可采用不按3度带中央子午线的任意带。 2、高斯投影正算公式: 52224253 2236 425442232)5814185(cos 120 )1(cos 6 cos )5861(cos sin 720 495(cos sin 24cos sin 2l t t t B N l t B N Bl N y l t t B B N l t B B N Bl B N X x ηηηηη-++-++-+=+-+++-++ =) 3、高斯投影反算公式:

大地坐标和经纬度之间的换算完整版

大地坐标和经纬度之间 的换算 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

大地坐标和经纬度之间的换算 地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,我写一下一般的过程,希望对大家有点帮助. 大地座标-----→经纬度(地理坐标) 1,输入大地坐标数据,格式为 Y空格X,输入到文本就行 如下,原始的大地坐标由一8位的Y和一个7位的X组成, 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y,6位,X,7位 保存这个TXT的文本文件。 2,打开MAPGIS,启动坐标投影变形程序 接下来选择投影转换>>>>用户文件投影转换 点打开文件,打开刚才的大地坐标的文本文件, 设置输入数据的格式,点击用户投影参数,并完成设置。 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米 好了以为设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置 我们输出的经纬度的单位应该是DDDMMMSS。SS注意 点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀 下面是计算出的结果文件 XP为经度,1234234。357就是123度42分34。357秒, YP为纬度,403950。225就是40度39分50。255秒(纬度没有最多90,所以没有三位数) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 经纬度——→大地座标 输入文件格式如下, 这里面的数据前面的为经度,格式为DDDMMSS,后面的为纬度,格式为DDMMSS 接下来的转换过程和大地坐标转换一样,只要将刚才的用户转换参数和结果转换参数交换即可, 要注意分带号的确定,如果你不知道分带号,就应该先计算分带号,算法是 经度/3得到的整数为三度带的分带号 经度/6得到的整数为六度带的分带号 其中的XP为地图上的Y坐标,记得在前面加上带号,其中的YP为地图上的X坐标

地理坐标系和大地坐标系

地理坐标系VS大地坐标系 winner发表于2008年12月22日 10:32 阅读(10) 评论(0) 分类:个人日记 举报 地理坐标转换到大地坐标的过程可理解为投影。(投影:将不规则的地球曲面转换为平面)在ArcGIS中预定义了两套坐标系: 地理坐标系(Geographic coordinate system) 投影坐标系(Projected coordinate system) 1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短半轴,偏心率。以下几行便是Krasovsky_1940椭球及其相应参数。 Spheroid: Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening(扁率): 298.300000000000010000 然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中,可以看到有这么一行: Datum: D_Beijing_1954 表示,大地基准面是D_Beijing_1954。 有了Spheroid和Datum两个基本条件,地理坐标系统便可以使用。 完整参数: Alias: Abbreviation: Remarks: Angular Unit: Degree (0.017453292519943299) Prime Meridian(起始经度): Greenwich (0.000000000000000000) Datum(大地基准面): D_Beijing_1954 Spheroid(参考椭球体): Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening: 298.300000000000010000 2、接下来便是Projection coordinate system(投影坐标系统),首先看看投影坐标系统中的一些参数。

利用MAPGIS制图软件换算大地坐标和经纬度

利用MAPGIS制图软件换算大地坐标和经纬度 地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,以下步骤请大家熟记: 一、大地座标→经纬度(地理坐标) 1、在文本文件中输入大地坐标数据,格式为Y空格X。 如下,原始的大地坐标由一个8位的Y和一个7位的X组成,“新建文本文档.txt -记事本”显示如下: 31560000 4503500 31565000 4503500 31565000 4507500 31568500 4507500 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉, 现在数据变为:Y—6位,X—7位。“新建文本文档.txt -记事本”显示如下: 560000 4503500 565000 4503500 565000 4507500 568500 4507500 保存这个TXT的文本文件。 2、打开MAPGIS,启动坐标投影变形程序 如果是MAPGIS6.7版,请选择“实用服务→投影变换系统→用户文件投影转换”→点击打开文件,打开刚才的大地坐标的文本文件。 “指定数据起始位置”中出现刚才的的文本文档,显示如下: 560000 4503500 565000 4503500 565000 4507500 568500 4507500 在设置用户文件选项中,一般选:按行读取数据,X→Y顺序,生成点。最后点击确定。3、设置输入数据的格式,点击用户投影参数,并完成设置。 坐标系类型——大地坐标系 投影类型——5:高斯克吕格投影 比例尺分母——1 椭球面高程——0 投影面高程——0 投影带类型——3度带或6度带 投影带序号——31 X,Y的平移均设0 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米 接着为:设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成设置。 4、输入投影参数 坐标系类型——地理坐标系 我们输出的经纬度的单位应该是DDDMMMSS。SS注意点写到文件,保存就大功告成了,注意:保存的文件要写上.TXT的后缀 最后,在文本文件中计算出的结果如下: x= 560000 y= 4503500 xp=1234234.357 yp=403950.255

大地坐标和经纬度之间的换算

MAPGIS应用——大地坐标和经纬度之间的换算(2009-04-20 15:57:08) 标签:杂谈分类:学海无涯 地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,我写一下一般的过程,希望对大家有点帮助. 大地座标-----→经纬度(地理坐标) 1,输入大地坐标数据,格式为 Y空格X,输入到文本就行 如下,原始的大地坐标由一8位的Y和一个7位的X组成, 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y(6位),X(7位)如下图:

保存这个TXT的文本文件。 2,打开MAPGIS,启动坐标投影变形程序 接下来选择投影转换——>用户文件投影转换

点打开文件,打开刚才的大地坐标的文本文件,

设置输入数据的格式,点击用户投影参数,并完成设置。 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米。

填好了以后设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置: 我们输出的经纬度的单位应该是DDDMMMSS.SS注意点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀

下面是计算出的结果文件 XP为经度,1234234.357就是123度42分34.357秒, YP为纬度,403950.225就是40度39分50.255秒(纬度没有最多90,所以没有三位数) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 经纬度——→大地座标 输入文件格式如下, 这里面的数据前面的为经度,格式为DDDMMSS,后面的为纬度,格式为DDMMSS 接下来的转换过程和大地坐标转换一样,只要将刚才的用户转换参数和结果转换参数交换即可。 要注意分带号的确定,如果你不知道分带号,就应该先计算分带号,算法是: 经度/3得到的整数为三度带的分带号

WGS84经纬度坐标与北京54坐标或者西安80坐标的关系

WGS84经纬度坐标与北京54坐标或者西安80坐标的关系 WGS84经纬度坐标与北京54坐标或者西安80坐标的关系 2008-11-07 17:58 一般来讲,GPS直接提供的坐标(B,L,H)是1984年世界大地坐标系(Word Geodetic System 1984即WGS-84)的坐标,其中B为纬度,L为经度,H为大地高即是到WGS-84椭球面的高度。而在实际应用中,我国地图采用的是1954北京坐标系或者1980西安坐标系下的高斯投影坐标(x,y,),不过也有一些电子地图采用1954北京坐标系或者1980西安坐标系下的经纬度坐标(B,L),高程一般为海拔高度h。 GPS的测量结果与我国的54系或80系坐标相差几十米至一百多米,随区域不同,差别也不同,经粗落统计,我国西部相差70米左右,东北部140米左右,南部75米左右,中部45米左右。现就上述几种坐标系进行简单介绍,供大家参阅,并提供各坐标系的基本参数,以便大家在使用过程中自定义坐标系。 1、1984世界大地坐标系 WGS-84坐标系是美国国防部研制确定的大地坐标系,是一种协议地球坐标系。WGS-84坐标系的定义是:原点是地球的质心,空间直角坐标系的Z轴指向BIH(1984.0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。X轴指向BIH定义的零度子午面和CTP赤道的交点,Y轴和Z,X轴构成右手坐标系。WGS-84椭球采用国际大地测量与地球物理联合会第17届大会测量常数推荐值,采用的两个常用基本几何参数: 长半轴a=6378137m;扁率f=1:298.257223563。 2、1954北京坐标系 1954北京坐标系是将我国大地控制网与前苏联1942年普尔科沃大地坐标系相联结后建立的我国过渡性大地坐标系。属于参心大地坐标系,采用了前苏联的克拉索夫斯基椭球体。其长半轴a=6378245,扁率f=1/298.3。1954年北京坐标系虽然是苏联1942年坐标系的延伸,但也还不能说它们完全相同。 3、1980西安坐标系 1978年,我国决定建立新的国家大地坐标系统,并且在新的大地坐标系统中进行全国天文大地网的整体平差,这个坐标系统定名为1980年西安坐标系。属参心大地坐标系。1980年西安坐标系Xi'an Geodetic Coordinate System 1980 采用1975国际椭球,以JYD 1968.0系统为椭球定向基准,大地原点设在陕西省泾阳县永乐镇,采用多点定位所建立的大地坐标系.其椭球参

经纬度坐标与大地坐标转换表

经纬度坐标与大地坐标转换表 114114 114114 114114 114114 1 234.565411113.59429634.94836113.9953-0.0047334.42443113.590 15734.71231113.9838-0.0162334.420793114.21161134.7022114.35 450.35447534.562121114.21469534.93923114.3630.3630424卫星影像图脚点示意图3 弧度值 -8.261e-050.6988650.8196690.0045270.4884131.00452763852614.

59e-09-0.00028330.6927510.8220220.0045530.4799031.004553638 51785.42e-080.006186760.692490.8221220.0045540.4795421.0045 5463851752.59e-050.006336270.6986280.819760.0045280.4880811 .00452863852582.7e-05 x 0.5728380.32814332049.80123868932.999y-432.37585740.5694560 .3242832049.2823842744.937-1486.849820.5693110.32411532049. 25993841681.23932476.790980.5727070.32799432049.7813867979.经纬度坐标与大地坐标转换表28533166.52816

经纬度转换大地坐标api 经纬度地址解析

经纬度转换大地坐标api 经纬度地址解析 经纬度转换大地坐标api实现GPS/百度经纬度/谷歌经纬度解析成地理位置信息,查询位置信息。 接口名称:经纬度转换大地坐标api 接口平台:聚合数据 接口地址:https://www.360docs.net/doc/5b6626320.html,/geo/ 支持格式:JSON/XML 请求方式:GET 请求示例:https://www.360docs.net/doc/5b6626320.html,/geo/?key=您申请的APPKEY&lat=39.907314&lng=116.391279&type=1 接口备注:实现GPS/百度经纬度/谷歌经纬度解析成地理位置信息 经纬度转换大地坐标api调用代码JSON返回示例: { "resultcode":"200", "reason":"Successed!", "result":{ "lat":"39.915065193348", "lng":"116.40389843345", "type":"1", "address":"北京市东城区中华路甲10号", "business":"天某门", "citycode":131 } } 经纬度转换大地坐标api调用代码XML返回示例: 200 Successed! 39.915065193348 116.40389843345 1

北京市东城区中华路甲10号
天某门 131

2000大地坐标系转换技术指南.

CGCS2000 –China Geodetic Coordinate System 2000 附件: 现有测绘成果转换到2000国家大地坐标系 技术指南 一、2000国家大地坐标系的定义 国家大地坐标系的定义包括坐标系的原点、三个坐标轴的指向、尺度以及地球椭球的4个基本参数的定义。2000国家大地坐标系的原点为包括海洋和大气的整个地球的质量中心;2000国家大地坐标系的Z轴由原点指向历元2000.0的地球参考极的方向,该历元的指向由国际时间局给定的历元为1984.0的初始指向推算,定向的时间演化保证相对于地壳不产生残余的全球旋转,X轴由原点指向格林尼治参考子午线与地球赤道面(历元2000.0)的交点,Y轴与Z轴、X轴构成右手正交坐标系。采用广义相对论意义下的尺度。2000国家大地坐标系采用的地球椭球参数的数值为: 长半轴a=6378137m 扁率f=1/298.257222101 地心引力常数GM=3.986004418×1014m3s-2

自转角速度ω=7.292l15×10-5rad s-1其它参数见下表:

采用2000国家大地坐标系后仍采用无潮汐系统。 二、点位坐标转换方法 (一)模型选择 全国及省级范围的坐标转换选择二维七参数转换模型;省级以下的坐标转换可选择三维四参数模型或平面四参数模型。对于相对独立的平面坐标系统与2000国家大地坐标系的联系可采用平面四参数模型或多项式回归模型。坐标转换模型详见本指南第六部分。 (二)重合点选取 坐标重合点可采用在两个坐标系下均有坐标成果的点。但最终重合点还需根据所确定的转换参数,计算重合点坐标残差,根据其残差值的大小来确定,若残差大于3倍中误差则剔除,重新计算坐标转换参数,直到满足精度要求为止;用于计算转换参数的重合点数量与转换区域的大小有关,但不得少于5个。 (三)模型参数计算 用所确定的重合点坐标,根据坐标转换模型利用最小二乘法计算模型参数。 (四)精度评估与检核 用上述模型进行坐标转换时必须满足相应的精度指标,具体精度评估指标及评估方法见附件中相关内容。选择部分重合

地理坐标系与大地坐标系

地理坐标系与大地坐标系 地理坐标:为球面坐标。参考平面地是椭球面。坐标单位:经纬度 大地坐标:为平面坐标。参考平面地是水平面。坐标单位:米、千米等。 地理坐标转换到大地坐标的过程可理解为投影。(投影:将不规则的地球曲面转换为平面) 在ArcGIS中预定义了两套坐标系:地理坐标系(Geographic coordinate system)投影坐标系(Projected coordinate system), 1、首先理解地理坐标系(Geographic coordinate system), Geographic coordinate system直译为地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate system是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短半轴,偏心率。以下几行便是Krasovsky_1940椭球及其相应参数。 Spheroid: Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening(扁率): 298.300000000000010000 然而有了这个椭球体以后还不够,还需要一个大地基准面将这个椭球定位。在坐标系统描述中,可以看到有这么一行: Datum: D_Beijing_1954 表示,大地基准面是D_Beijing_1954。 -------------------------------------------------------------------------------- 有了Spheroid和Datum两个基本条件,地理坐标系统便可以使用。 完整参数: Alias: Abbreviation: Remarks: Angular Unit: Degree (0.017453292519943299) Prime Meridian(起始经度): Greenwich (0.000000000000000000) Datum(大地基准面): D_Beijing_1954 Spheroid(参考椭球体): Krasovsky_1940 Semimajor Axis: 6378245.000000000000000000 Semiminor Axis: 6356863.018773047300000000 Inverse Flattening: 298.300000000000010000 2、接下来便是Projection coordinate system(投影坐标系统),首先看看投影坐标系统中的一些参数。 Projection: Gauss_Kruger Parameters: False_Easting: 500000.000000

大地坐标转经纬度和经纬度换大地坐标

地质工作中常要对进行大地坐标转经纬度和经纬度换大地坐标,以下步骤请大家熟记: 一、大地坐标→经纬度(地理坐标) 1、在文本文件中输入大地坐标数据,格式为Y空格X。 如下,原始的大地坐标由一个8位的Y和一个7位的X组成,“新建文本文档.txt -记事本”显示如下: 31560000 4503500 31565000 4503500 31565000 4507500 31568500 4507500 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为:Y—6位,X—7位。“新建文本文档.txt -记事本”显示如下:560000 4503500 565000 4503500 565000 4507500 568500 4507500 保存这个TXT的文本文件。 2、打开MAPGIS,启动坐标投影变形程序 如果是MAPGIS6.7版,请选择“实用服务→投影变换→P投影变换→U用户文件投影转换”→点击打开文件,打开刚才的大地坐标的文本文件。 “指定数据起始位置”中出现刚才的的文本文档,显示如下: 560000 4503500 565000 4503500 565000 4507500 568500 4507500

在设置用户文件选项中,一般选:按行读取数据,X→Y顺序,生成点。最后点击确定。 3、设置输入数据的格式,点击用户投影参数,并完成设置。 坐标系类型——大地坐标系 投影类型——5:高斯克吕格投影 比例尺分母——1 椭球面高程——0 投影面高程——0 投影带类型——3度带或6度带 投影带序号——31 X,Y的平移均设0 这里我们的大地坐标为3度带的第31带,注意填好,坐标单位为米

MAPGIS大地坐标和经纬度之间的换算

大地坐标和经纬度之间的换算 大地坐标-----→经纬度(地理坐标) 1、输入大地坐标数据,格式为Y空格X,输入到文本就行如下,原始的大地坐标由一8位的Y和一个7位的X组成, 这组坐标数据中的Y的前两位为31,是分带号,一般使用的分带有三分带,六分带,这里的坐标是三分带的,记下Y前的这两位数,在原始数据中去除掉,现在数据变为,Y,6位,X,7位 保存这个TXT的文本文件。 2,打开MAPGIS,启动坐标投影变形程序

接下来选择投影转换>>>>用户文件投影转换 点打开文件,打开刚才的大地坐标的文本文件,

设置输入数据的格式,点击用户投影参数,并完成设置。 这里我们的大地座标为3度带的第31带,注意填好,坐标单位为米 好了以为设置输出的格式,我们要求输出的是经纬度,点结果转换参数,完成以下设置

这个参数设置里第一行有一个很重要的参数,椭球参数这一项,很多博友没有到正确的结果就是因为该项参数没有设定,中国地图一般只有两种,一种是北京54,还有就是80黄海 正确设定好这个就能得到正确的结果啦,笔者用的是80黄海的参考椭球,不过 中国大部分是用54坐标系的!!!

我们输出的经纬度的单位应该是DDDMMMSS。SS注意 点写到文件,保存就大功告成了,注意保存的文件要写上.TXT的后缀

下面是计算出的结果文件 XP为经度,1234234。357就是123度42分34。357秒, YP为纬度,403950。225就是40度39分50。255秒(纬度最多90,所以没有三位数) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 经纬度——→大地座标 输入文件格式如下,

坐标转换从经纬度坐标到大地坐标及源码

坐标转换从经纬度坐标到大地坐标及源码 利用网络上开源的资料,可以很容易的实现从经纬度坐标向各种投影坐标的转换,美国地质调查局开发USGS的GCTP就是很好的东西之一,有C语言版本的支持各种投影类型的源代码,比如UNIVERSAL TRANSVERSE MERCATOR, ALBERS CONICAL EQUAL AREA ,LAMBERT CONFORMAL CONIC等等,我们机房使用的就是LAMBERT CONFORMAL CONIC(LAMBERT 圆锥等角投影),利用GCTP提供的源代码详见source文件夹下的lamccfor.c 和lamccinv.c ,可以轻松实现经纬度投影坐标和LAMBERT CONFORMAL CONIC坐标的相互转化,其他投影方式使用的比较少,还要进一步研究,就以后在写了. lamccforint函数设置LAMBERT CONFORMAL CONIC投影的各个参数,比如长半轴,短半轴,中心点经纬度坐标,标准纬线等等信息. long lamccforint(r_maj,r_min,lat1,lat2,c_lon,c_lat,false_east,false_north) double r_maj; /* majoraxis */ double r_min; /* minoraxis */ double lat1; /* first standard parallel */ double lat2; /* second standard parallel */ double c_lon; /* center longitude */ double c_lat; /* center latitude */ double false_east; /* x offset in meters */ double false_north; /* y offset in meters */ { double sin_po; /* sin value */ double cos_po; /* cos

相关文档
最新文档