看完RailsCasts#273后我想使用Geocoder宝石.我见过这个:
class Skatepark < ActiveRecord::Base
reverse_geocoded_by :latitude, :longitude
after_validation :fetch_address
...
end
Run Code Online (Sandbox Code Playgroud)
这将反转地理编码坐标并填充:addressformatted_address.
我可以得到这个分离为:street,:locality,:region,:country,和:postal_code地址解析器的宝石?
我打电话的时候
geocoder reverseGeocodeLocation:currentLoc completionHandler:
Run Code Online (Sandbox Code Playgroud)
我根据iphone上设置的语言设置获取所有语言的数据(城市,县,...).
我如何强制总是用英语获取这些数据?
我有一个地理编码器,gcd和这行代码反向地理编码
List<Address> addresses = gcd.getFromLocation(latitude, longitude, 1);
if(addresses != null) {
Address returnedAddress = addresses.get(0);
for(int i=0; i<returnedAddress.getMaxAddressLineIndex(); i++) {
strReturnedAddress = (returnedAddress.getAddressLine(i)).toString();
Run Code Online (Sandbox Code Playgroud)
strReturnedAddress返回类似的东西
10453 Central Bronx,New York City,NY
我只需要城市名称,即纽约市.
删除部分字符串将非常困难,因为地理编码的输出可能会发生变化.我只需要地理编码给我这个城市.
我查了http://developer.android.com/reference/android/location/Geocoder.html但找不到答案.
行,所以我已经打了一堵墙,只是我想要做的是传播一个div手头用户的城市名称,我觉得我在正确的路线,但缺少的东西出来.有人可以帮忙吗?继承我的编码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Reverse Geocoding</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function getLocation(){
var loc = document.getElementById('coords');
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else
{
loc.value = "nolocation";
}
}
function showPosition(position){
var loc = document.getElementById('coords');
loc.value = position.coords.latitude + "," + position.coords.longitude;
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
var area = getArea(results)
document.getElementById('location-box').value = …Run Code Online (Sandbox Code Playgroud) 我在asp.net网站(Visual Studio 2010,C#)中使用nominatim进行反向地理编码。
我在另一个网页上得到XML或json格式的答案,如下所示:
我无法使用XML阅读器或HTTP响应读取此地址。
需要帮助将此文本转换为纯文本并显示在我的网站上。
如何使用 Go 从坐标(例如 49.014,8.4043)获取地理位置(例如最近的城市)?
\n\n我尝试使用golang-geo:
\n\npackage main\n\nimport (\n "log"\n\n "github.com/kellydunn/golang-geo"\n)\n\nfunc main() {\n p := geo.NewPoint(49.014, 8.4043)\n geocoder := new(geo.GoogleGeocoder)\n geo.HandleWithSQL()\n res, err := geocoder.ReverseGeocode(p)\n if err != nil {\n log.Println(err)\n }\n log.Println(string(res))\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但它给出了Schlo\xc3\x9fplatz 23, 76131 Karlsruhe, Germany. 我想要\n Karlsruhe(所以:只有城市)。
如何只获取城市?
\n我正在进行反向地理编码并更新生成的 O/P(JSON 格式)并使用 json O/P 更新 sql 表列,但它无法按预期正确存储或更新它。
这是进行反向地理编码后更新的内容
>pw
{'results': [{'address_components': [{'long_name': 'Nandanvan A Wing', 'short_name': 'Nandanvan A Wing', 'types': ['establishment', 'point_of_interest', 'premise']}, {'long_name': 'Shivaji Nagar Marg', 'short_name': 'Shivaji Nagar Marg', 'types': ['route']}, {'long_name': 'Vishnu Prasad Society', 'short_name': 'Vishnu Prasad Society', 'types': ['neighborhood', 'political']}, {'long_name': 'Navpada', 'short_name': 'Navpada', 'types': ['political', 'sublocality', 'sublocality_level_3']}, {'long_name': 'Parle Colony', 'short_name': 'Parle Colony', 'types': ['political', 'sublocality', 'sublocality_level_2']}, {'long_name': 'Vile ....72.8454698}}}, 'place_id': 'ChIJ1SbMGMrJ5zsRQd3_uFHHDN4', 'types': ['political', 'sublocality', 'sublocality_level_3']}], 'status': 'OK'}
但这就是事实,
这是我使用的代码
import pyodbc …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 php 中执行一些反向地理编码。不幸的是,我收到一个错误。
$lon = 100.753;
$lat = 13.69362;
function getAddress($RG_Lat,$RG_Lon)
{
$json = "http://nominatim.openstreetmap.org/reverse?format=json&lat=".$RG_Lat."&lon=".$RG_Lon."&zoom=27&addressdetails=1";
$jsonfile = file_get_contents($json);
$RG_array = json_decode($jsonfile,true);
foreach ($RG_array as $name => $value)
{
if($name == "display_name")
{
$RG_address = $value;
break;
}
}
return $RG_address;
}
$addr = getAddress($lat,$lon);
echo "Address: ".$addr;
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误。
<b>Warning</b>: file_get_contents(http://nominatim.openstreetmap.org/reverse?format=json&lat=13.69362&lon=100.753&zoom=27&addressdetails=1): failed to open stream: Connection timed out in <b>/home/public_html/myapp/get_loc.php</b> on line <b>22</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/public_html/myapp/get_loc.php</b> on line <b>25</b><br />
<br />
<b>Notice</b>: …Run Code Online (Sandbox Code Playgroud) 我正在使用Openlayers库在Angular 中编程。我想使用这个 API:https : //adresse.data.gouv.fr/api(页面是法语,所以我会解释目的)
这个 API 的目标一方面是在构建 GeoJSON 文件时搜索地图上的一些地址,另一方面是使用反向地理编码。这就是为什么我需要用户的地理位置。
例如这个请求:http 'https://api-adresse.data.gouv.fr/search/?q=8 bd du port'将返回世界上所有回答名称“8 bd du port”的街道
所以我想使用反向地理编码并创建一个这样的请求: http 'https://api-adresse.data.gouv.fr/reverse/?lon=user_lon&lat=user_lat'
这是最好的方法吗?我不想使用另一种 API,例如 Google API
我试图在 react native 中获取我当前的位置,使用react-native-geolocation获取我所在位置的纬度和经度。现在我想在不使用 Google API 密钥的情况下将它们转换为位置的地址。
有没有办法在不使用 Google API 密钥的情况下将纬度经度转换为地址?
geolocation ×2
javascript ×2
android ×1
angular ×1
api ×1
asp.net ×1
c# ×1
go ×1
html ×1
iphone ×1
jquery ×1
json ×1
locale ×1
nominatim ×1
objective-c ×1
openlayers ×1
php ×1
pyodbc ×1
python ×1
react-native ×1
ruby ×1