Yine başa döndük. verdiğim örnek buna ilişkin Google'dan basit bir sorgu ile adresten Lat / Lon koordinatları çekip işe öyle başlayacaksınız.
Haa. ben kurumda Naklen Yayın araçlarının konumlandırılması için benzer bir yapıyı şöyle kurdum. Türkiye İl İlçe GPS koordinat bankası buldum netten, onu veritabanına aldım. İl / İlçe seçince hemen koordinat çıkıyor oradan sonra detaya gidiyorum.
bkz. GithubLinki
Sana şöyle bir test kodu hazırladım. Google Maps'in ne şekilde ilçeyi çevrelediğini inceledim. Koordinatı girip yanında konum adını verdiğinde odaklanıp place adı tutuyorsa sınırlarını çizdiğini gördüm.
En azında il / ilçe bazında koordinat alırsın eğer browse edilirse ilçe'nin etrafının çevrelendiği bir harita da gösterebilirsin.
Haa. ben kurumda Naklen Yayın araçlarının konumlandırılması için benzer bir yapıyı şöyle kurdum. Türkiye İl İlçe GPS koordinat bankası buldum netten, onu veritabanına aldım. İl / İlçe seçince hemen koordinat çıkıyor oradan sonra detaya gidiyorum.
bkz. GithubLinki
Sana şöyle bir test kodu hazırladım. Google Maps'in ne şekilde ilçeyi çevrelediğini inceledim. Koordinatı girip yanında konum adını verdiğinde odaklanıp place adı tutuyorsa sınırlarını çizdiğini gördüm.
En azında il / ilçe bazında koordinat alırsın eğer browse edilirse ilçe'nin etrafının çevrelendiği bir harita da gösterebilirsin.
uses System.Net.HttpClientComponent;
Type
tLocation = record
Latitude, Longitude, LZoom : String;
end;
function GetGeoLoc( aSehir, aIlce: WideString ): tLocation;
const
SearchFormat = 'https://www.google.com/maps/place/%s,%s';
var
aUrl : String;
aClient : TNetHTTPClient;
sResponse : TStringStream;
aSrc : String;
LStat : Integer;
strBlok : String;
begin
Result := default(tLocation);
strBlok := '';
aUrl := Format( SearchFormat, [ aSehir, aIlce ] );
aClient := TNetHTTPClient.Create(nil);
try
aClient.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'; // 'Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)';
aClient.Accept := 'text/html';
sResponse := TStringStream.Create( '', TEncoding.UTF8 );
try
LStat := aClient.Get( aUrl, sResponse ).StatusCode;
if LStat = 200 then
begin
sResponse.SaveToFile( ExtractFilePath(paramStr(0)) + 'gelen.html' );
strBlok := sResponse.DataString;
end;
finally
FreeAndNil(sResponse);
end;
// Parse Section
// ------------------------------------------------------------------------ //
aSrc := 'https://www.google.com/maps/preview/place/';
if Pos(aSrc, strBlok) > 0 then
begin
System.Delete( strBlok, 1, Pos(aSrc, strBlok) -1 );
aSrc := '@';
if Pos(aSrc, strBlok) > 0 then
begin
System.Delete( strBlok, 1, Pos(aSrc, strBlok) );
Result.Latitude := Copy(strBlok, 1, Pos(',', strBlok)-1);
System.Delete( strBlok, 1, Pos(',', strBlok) );
Result.Longitude := Copy(strBlok, 1, Pos(',', strBlok)-1);
Result.LZoom := 'z10';
end;
end;
finally
FreeAndNil(aClient);
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
LUrl : String;
begin
With GetGeoLoc( Edit1.Text, Edit2.Text ) do
LUrl := Format('https://www.google.com/maps/place/%s,%s/@%s%%2F%s,%s', [Edit1.Text, Edit2.Text, Latitude, Longitude, LZoom]);
Memo1.Lines.Add( LUrl );
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := 'Ankara';
Edit2.Text := 'Mamak';
end;
Saygılarımla
Muharrem ARMAN

Muharrem ARMAN



