我是一名业余编程爱好者,只会简单的VB。
在网上看到有篇文章讲的是通过经度和纬度计算Google earth卫星地图的URL,
并附了用Delphi写的代码,我怎么运行不了呢?
我新建了一个VCL Forms Application-Delphi for Win32
在按钮的单击事件下写入如下代码:
用到了这些控件:fm1为Frames,lb1-lb4为TLabel,ed1-ed4为TEdit,bu1为TButton。
fm1为主窗口,lb1为放大倍数接收ed1输入的数据,lb2为经度接收ed2输入的数据,lb3为纬度接收ed3输入的数据,lb4为在ed4中显示的URL。
procedure Tfm1.bu1Click(Sender: TObject);
var
zm:integer;
Xj,Yw:double;
begin
zm:=StrToInt(ed1.text);
Xj:=StrToFloatDef(ed2.text,0);
Yw:=StrToFloatDef(ed3.text,0);
//zoom 放大倍数,由1-18; X 经度; Y 纬度
function getSatURL(zoom:integer; X,Y:double):string;
var
wx, wy, cx, cy: double;
tid: string;
i:integer;
begin
cx:= 0;
cy:= 0;
wx:= 180;
wy:= 180;
tid:= 't';
for i:= 1 to zoom-1 do
begin
if (x >= cx) and (y >= cy) then
begin
tid:= tid + 'r';
cx:= cx + wx / 2;
cy:= cy + wy / 2;
end
else if (x >= cx) and (y < cy) then
begin
tid:= tid + 's';
cx:= cx + wx / 2;
cy:= cy - wy / 2;
end
else if (x < cx) and (y < cy) then
begin
tid:= tid + 't';
cx:= cx - wx / 2;
cy:= cy - wy / 2;
end
else
begin
tid:= tid + 'q';
cx:= cx - wx / 2;
cy:= cy + wy / 2;
end;
wx:= wx / 2;
wy:= wy / 2;
end;
result:= 'http://kh.google.com/kh?v=3&t=' + tid;
end;
ed4.text:=function getSatURL(zm,Xj,Yw);
end.
在网上看到有篇文章讲的是通过经度和纬度计算Google earth卫星地图的URL,
并附了用Delphi写的代码,我怎么运行不了呢?
我新建了一个VCL Forms Application-Delphi for Win32
在按钮的单击事件下写入如下代码:
用到了这些控件:fm1为Frames,lb1-lb4为TLabel,ed1-ed4为TEdit,bu1为TButton。
fm1为主窗口,lb1为放大倍数接收ed1输入的数据,lb2为经度接收ed2输入的数据,lb3为纬度接收ed3输入的数据,lb4为在ed4中显示的URL。
procedure Tfm1.bu1Click(Sender: TObject);
var
zm:integer;
Xj,Yw:double;
begin
zm:=StrToInt(ed1.text);
Xj:=StrToFloatDef(ed2.text,0);
Yw:=StrToFloatDef(ed3.text,0);
//zoom 放大倍数,由1-18; X 经度; Y 纬度
function getSatURL(zoom:integer; X,Y:double):string;
var
wx, wy, cx, cy: double;
tid: string;
i:integer;
begin
cx:= 0;
cy:= 0;
wx:= 180;
wy:= 180;
tid:= 't';
for i:= 1 to zoom-1 do
begin
if (x >= cx) and (y >= cy) then
begin
tid:= tid + 'r';
cx:= cx + wx / 2;
cy:= cy + wy / 2;
end
else if (x >= cx) and (y < cy) then
begin
tid:= tid + 's';
cx:= cx + wx / 2;
cy:= cy - wy / 2;
end
else if (x < cx) and (y < cy) then
begin
tid:= tid + 't';
cx:= cx - wx / 2;
cy:= cy - wy / 2;
end
else
begin
tid:= tid + 'q';
cx:= cx - wx / 2;
cy:= cy + wy / 2;
end;
wx:= wx / 2;
wy:= wy / 2;
end;
result:= 'http://kh.google.com/kh?v=3&t=' + tid;
end;
ed4.text:=function getSatURL(zm,Xj,Yw);
end.
function getSatURL(zoom:integer; X,Y:double):string;
var
wx, wy, cx, cy: double;
tid: string;
i:integer;
begin
cx:= 0;
cy:= 0;
wx:= 180;
wy:= 180;
tid:= 't';
for i:= 1 to zoom-1 do
begin
if (x >= cx) and (y >= cy) then
begin
tid:= tid + 'r';
cx:= cx + wx / 2;
cy:= cy + wy / 2;
end
else if (x >= cx) and (y < cy) then
begin
tid:= tid + 's';
cx:= cx + wx / 2;
cy:= cy - wy / 2;
end
else if (x < cx) and (y < cy) then
begin
tid:= tid + 't';
cx:= cx - wx / 2;
cy:= cy - wy / 2;
end
else
begin
tid:= tid + 'q';
cx:= cx - wx / 2;
cy:= cy + wy / 2;
end;
wx:= wx / 2;
wy:= wy / 2;
end;
result:= 'http://kh.google.com/kh?v=3&t=' + tid;
end;
procedure Tfm1.bu1Click(Sender: TObject);
var
zm:integer;
Xj,Yw:double;
begin
zm:=StrToInt(ed1.text);
Xj:=StrToFloatDef(ed2.text,0);
Yw:=StrToFloatDef(ed3.text,0); // ed4.text:=function getSatURL(zm,Xj,Yw);
ed4.text:=getSatURL(zm,Xj,Yw);
end;
而且知道这个基本没有用
现在google对下它的地图加了保护 如果感觉被机器下了就停止提供