2012-05-22 2 views
0

Моей карте Google необходимо поддерживать «внедорожные» местоположения.Как предотвратить маркер карты от привязки к дороге

Я хотел бы знать, как предотвратить привязку маркерного маркера к дороге.

Адрес передается из поля ввода, а лат & lng извлекаются из позиции маркера.

function geoCodeLocation(address, lat, lng) { 
    geocoder.geocode( 
    { 
     "address" : address ? address : '', 
     "location" : new google.maps.LatLng(lat, lng) 
    }, 
    /* ... */ 

} 

ответ

3

Код, который вы показали довольно минимален, так что я, возможно, пропустил точку, но Geocoding обычно делает один из двух вещей:

  1. У вас есть LatLng и вам нужен адрес
  2. у вас есть адрес и нужен LatLng

GeocodingService требует либо адрес или место, но не оба.

Ваш код выглядит так, как будто он всегда ожидает наличия LatLng и может существовать адрес. Если вы вызовете Geocoder с помощью LatLng, он вернет адрес. В этом случае имеет смысл, что маркер будет прикреплен к дороге.

С другой стороны, если у вас есть адрес, LatLng, на который вы вернетесь, будет основываться на адресе, поэтому также имеет смысл, что он будет прикреплен к дороге.

Но если у вас всегда есть LatLng, почему бы не просто создать маркер с помощью LatLng и пропустить вызов геокода (тем более, что вы не хотите, чтобы маркер находился в дороге)?

Если у меня нет отметки, не могли бы вы добавить дополнительную информацию к своему вопросу?

+0

Шон справа, ваш код немного разновидности ремней и подтяжек. Просто пройдите latlng, и маркер останется там, где вы хотите. – dda

Смежные вопросы