# Mapping with geo\_point

**URL:** <https://discuss.elastic.co/t/mapping-with-geo-point/36276>\
**Category:** Elasticsearch\
**Created:** [December 3, 2015, 11:03am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276 "2015-12-03T11:03:04Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Amit2015](https://avatars.discourse-cdn.com/v4/letter/a/258eb7/32.png) [@Amit2015](https://discuss.elastic.co/u/Amit2015)\
**Post date:** [December 3, 2015, 11:03am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/1 "2015-12-03T11:03:05Z")

</div>

Hi,

I am using python to import csv file.

Python script:

es = Elasticsearch([{'host': 'localhost', 'port': 9200}])  
f = open("E:\Data\ff\test.csv",'r')  
fulldata = f.readlines()  
f.close()  
del fulldata[0]

for line in fulldata:  
array = line.split(",")  
STATE = array[0]  
Primary = array[1]  
Alternate = array[2]  
Latitude = array[3]  
Longitude = array[4]

#json\_body = "{"STATE" : "" + STATE+"", "Primary" : "" + Primary+"", "Alternate" : "" + Alternate+"", "Latitude" : ""+ Latitude+"", "Longitude" : "" + Longitude+""}"

```
print line
res = es.index(index="ff", doc_type="tt", body=json_body)

```

csv file data:

State,Primary,Alternate,Latitude,Longitude,  
IN-UP,0000000000,0000000000,26.846709,80.946159,  
IN-MH,0000000000,0000000000,19.75148,75.713888,

Unable to pass geo\_point as I am passing as string, syntax for map geo\_point in python???

Please guide...

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [December 3, 2015, 11:39am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/2 "2015-12-03T11:39:28Z")

</div>

See [https://www.elastic.co/guide/en/elasticsearch/reference/2.1/geo-point.html](https://www.elastic.co/guide/en/elasticsearch/reference/2.1/geo-point.html) for information about how you can format input fields to have them recognized as geo\_point.

I strongly suggest that you use Python's json module to generate the JSON string.

---

<div class="post-metadata">

**Author:** ![Amit2015](https://avatars.discourse-cdn.com/v4/letter/a/258eb7/32.png) [@Amit2015](https://discuss.elastic.co/u/Amit2015)\
**Post date:** [December 3, 2015, 11:55am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/3 "2015-12-03T11:55:15Z")

</div>

Hi,

I have seen that document. I am asking syntax for python,  
json\_body = "{"STATE" : "" + STATE+"", "Primary" : "" + Primary+"", "Alternate" : "" + Alternate+"", "Latitude" : ""+ Latitude+"", "Longitude" : "" + Longitude+""}"

its take latitude and longitude as string. I have mapped as geo-point in Sense. But in python how can do that???

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [December 3, 2015, 12:17pm UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/4 "2015-12-03T12:17:04Z")

</div>

This isn't the best place to ask for Python help. If we pick one of the formats described in the examples in the documentation,

```
"location": "41.12,-71.34"

```

you need something like

```
... "\"Location\": \"" + Latitude + "," + Longitude + "\"}"

```

in your Python example. But again, use the json module so that the code become robust and readable:

```auto
json_body = json.dumps({"STATE": STATE,
                        "Primary": Primary,
                        "Alternate": Alternate,
                        "Primary": Primary,
                        "Location": Latitude + "," + Longitude})

```

---

<div class="post-metadata">

**Author:** ![Amit2015](https://avatars.discourse-cdn.com/v4/letter/a/258eb7/32.png) [@Amit2015](https://discuss.elastic.co/u/Amit2015)\
**Post date:** [December 3, 2015, 1:06pm UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/5 "2015-12-03T13:06:54Z")

</div>

Hi,

It would map as geo\_point?? I have tried same but giving me error.

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [December 3, 2015, 1:08pm UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/6 "2015-12-03T13:08:07Z")

</div>

> It would map as geo\_point??

Yes, why not?

> I have tried same but giving me error.

Without more information (like, what error you get) it's completely impossible to help.

---

<div class="post-metadata">

**Author:** ![Amit2015](https://avatars.discourse-cdn.com/v4/letter/a/258eb7/32.png) [@Amit2015](https://discuss.elastic.co/u/Amit2015)\
**Post date:** [December 3, 2015, 1:18pm UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/7 "2015-12-03T13:18:40Z")

</div>

In Kibana, data types are conflict because I have mapped in location as geo\_point and from python its pass as a string. I want to pass location as geo\_point data type.

json\_body = "{"STATE" : "" + STATE+"", "Primary" : "" + Primary+"", "Alternate" : "" + Alternate+"", "Location": "" + Latitude+"," + Longitude +""}"

error:

![](https://us1.discourse-cdn.com/elastic/original/2X/e/e81aa439d1731ad3defa8a4773c7d31194b8b848.png)

Please help me....

full python script:

es = Elasticsearch([{'host': 'localhost', 'port': 9200}])  
f = open("E:\Data\ff\test.csv",'r')

fulldata = f.readlines()  
f.close()  
del fulldata[0]

for line in fulldata:  
array = line.split(",")  
STATE = array[0]  
Primary = array[1]  
Alternate = array[2]  
location = array[3]

```
json_body = "{\"STATE\" : \"" + STATE+"\", \"Primary\" : \"" + Primary+"\", \"Alternate\" : \"" + Alternate+"\", \"Location\": \"" + Latitude+"," + Longitude +"\"}"

	
print line
res = es.index(index="lm", doc_type="pk", body=json_body)
```

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [December 3, 2015, 1:31pm UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/8 "2015-12-03T13:31:14Z")

</div>

The geo\_point data type only lives inside Elasticsearch. Everything that's sent to Elasticsearch is in JSON and the only valid data types in JSON are strings, numbers, booleans, objects, and arrays. The documentation I referred you to explains what a JSON value needs to look like for it to be acceptable in a geo\_point field.

---

<div class="post-metadata">

**Author:** ![daTokenizer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/datokenizer/32/6658_2.png) [@daTokenizer](https://discuss.elastic.co/u/daTokenizer)\
**Post date:** [December 16, 2015, 9:28am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/9 "2015-12-16T09:28:42Z")

</div>

this is all very well, but I have yet to succeed in mapping an item as geopoint for Kibana visualization. it always defaults to string..

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [December 16, 2015, 9:38am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/10 "2015-12-16T09:38:00Z")

</div>

> this is all very well, but I have yet to succeed in mapping an item as geopoint for Kibana visualization. it always defaults to string..

If you start a new thread and give more details about the situation someone might be able to help.

---

<div class="post-metadata">

**Author:** ![daTokenizer](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/datokenizer/32/6658_2.png) [@daTokenizer](https://discuss.elastic.co/u/daTokenizer)\
**Post date:** [December 16, 2015, 9:53am UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/11 "2015-12-16T09:53:04Z")

</div>

thanks 🙂

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:30pm UTC](https://discuss.elastic.co/t/mapping-with-geo-point/36276/12 "2017-07-05T23:30:42Z")

</div>


